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

(Updated Jan. 29, 2015, 5:02 p.m.)


Status
------

This change has been marked as submitted.


Review request for Asterisk Developers.


Changes
-------

Committed in revision 431450


Bugs: ASTERISK-24649
    https://issues.asterisk.org/jira/browse/ASTERISK-24649


Repository: Asterisk


Description
-------

During an attended transfer of a channel in stasis, where a local channel is 
used to replace (swap in for) a PJSIP channel, there is a race condition.  The 
PJSIP REFER transfer has been initiated (ast_bridge_impart) but will be 
completed later on another thread (bridge_channel_ind_thread), however, prior 
to the stasis bridging callback (bridge_stasis_push) being called the PJSIP 
channel is hungup, which allows the stasis app loop to exit, deleting the 
stasis control.  That prevents the stasis bridge callback from getting the app 
name from the channel being replaced (swap).

This patch adds a new stasis bridge callback push_peek, which is called from 
the ast_bridge_impart() thread.  This allows the new bridge_stasis_push_peek() 
function to copy the stasis app name from the originating channel before the 
PJSIP channel can be hungup.


Diffs
-----

  /branches/13/res/stasis/stasis_bridge.c 431296 
  /branches/13/main/bridge.c 431296 
  /branches/13/include/asterisk/bridge.h 431296 

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


Testing
-------

Running 
tests/rest_api/external_interaction/attended_transfer/stasis_bridge_to_stasis_app
 now does not result in an occasional failure.


Thanks,

Scott Griepentrog

-- 
_____________________________________________________________________
-- 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