-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3485/
-----------------------------------------------------------

(Updated May 21, 2014, 11:29 a.m.)


Review request for Asterisk Developers, Matt Jordan and Mark Michelson.


Changes
-------

Address jcolp + mjordan's findings.

I want to go ahead and point out that I found there are some conditions during 
blind transfers that will lead to the refer_progress_bridge stasis subscription 
never getting unsubscribed (bad, especially since it's holding on to references 
to other things). This is a pre-existing problem... happens with or without the 
patch in place. Basically any transfer that doesn't put the recipient in a 
bridge will cause this (transfers to IVRs for instance). One possible fix might 
be to track the subscription on a channel datastore for the transferer. I have 
a work around in place for parking so that it doesn't leak the subscription, 
but this is a problem that should probably be fixed at some point.


Repository: Asterisk


Description
-------

If a PJSIP endpoint attempts to blind transfer to a parking extension, there is 
an override to the normal transfer logic that can make things act a little 
weird. We noticed that this would leave various phones hanging on transfer 
screens without progressing. When the transfer was considered successful, PJSIP 
deferred the actual action of sending the 200 notify and the actual trigger for 
that happening never occurs when the transfer is to a parking extension.

In order to handle this, the bridge function that handles blind transfers now 
returns a different value if a call was parked and if the channel driver needs 
to react differently in this case, it can.  In the case of PJSIP, we respond to 
transfers to park by immediately sending the notify with 200 OK sip frag 
instead of deferring the action.


Diffs (updated)
-----

  /branches/12/res/res_pjsip_refer.c 413303 
  /branches/12/res/parking/parking_bridge_features.c 413303 
  /branches/12/res/parking/parking_applications.c 413303 
  /branches/12/main/parking.c 413303 
  /branches/12/main/bridge_basic.c 413303 
  /branches/12/main/bridge.c 413303 
  /branches/12/include/asterisk/parking.h 413303 
  /branches/12/include/asterisk/bridge.h 413303 
  /branches/12/channels/sig_analog.c 413303 
  /branches/12/channels/chan_sip.c 413303 
  /branches/12/channels/chan_mgcp.c 413303 
  /branches/12/channels/chan_dahdi.c 413303 

Diff: https://reviewboard.asterisk.org/r/3485/diff/


Testing
-------

Before patch:
* Blind transfer on Polycom SPIP: Phone is on the blind transfer screen until 
it either manually hangs up or 60 seconds pass and Asterisk terminates the 
session.

After the patch:
* Blind transfer on Polycom SPIP: Phone immediately leaves the blind transfer 
screen and goes back to idle mode.


Thanks,

Jonathan Rose

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to