[asterisk-dev] [Code Review] Fix up indications issues related to redirects
Russell Bryant
russell at digium.com
Mon Dec 15 08:12:37 CST 2008
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/90/
-----------------------------------------------------------
(Updated 2008-12-15 08:12:37.471446)
Review request for Asterisk Developers.
Changes
-------
Update diff to include a comment explaining the change in ast_bridge_call, as well as some re-work of ast_indicate_data() for the sake of readability
Summary
-------
This patch was written to resolve issue #13747.
The issue that was reported was about a case where a RINGING channel got redirected to an extension to pick up a call from parking. Once the parked call got taken out of parking, it heard silence until the other side answered. Ideally, the caller that was parked would get a ringing indication. This patch fixes this case so that the caller receives ringback once it comes out of parking until the other side answers.
The fixes are:
1) Make sure we remember that a channel was an outgoing channel when doing a masquerade. This prevents an erroneous ast_answer() call on the channel, which causes a bogus 200 OK to be sent in the case of SIP.
2) Add some additional comments to explain related parts of code.
3) Update the handling of the ast_channel visible_indication field. Storing values that are not stateful is pointless. Control frames that are events or commands should be ignored.
4) When a bridge first starts, check to see if the peer channel needs to be given ringing indication because the calling side is still ringing.
This addresses bug 13747.
http://bugs.digium.com/view.php?id=13747
Diffs (updated)
-----
/branches/1.4/main/channel.c 164200
/branches/1.4/res/res_features.c 164200
Diff: http://reviewboard.digium.com/r/90/diff
Testing
-------
1) SIP/5001 calls SIP/5004
2) SIP/5001 transfers SIP/5004 to parking
(5004 is now parked, 5001 idle)
3) Originate an outbount call to SIP/5001.
4) Redirect the ringing channel to the proper extension to pick up the parked call.
Verified that after #4, 5001 was still ringing, and that 5004 received ringback.
5) Answer SIP/5001
Verified that the callers could now talk as usual
Thanks,
Russell
More information about the asterisk-dev
mailing list