[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