-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4382/
-----------------------------------------------------------
(Updated Jan. 28, 2015, 11:01 a.m.)
Review request for Asterisk Developers.
Changes
-------
Addressed Matt's and Richard's findings. Completed implementation of
push_peek() call to match push().
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 (updated)
-----
/branches/13/res/stasis/stasis_bridge.c 431296
/branches/13/main/bridge_channel.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