mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-10 11:58:08 +00:00
res_pjsip_refer/chan_sip: Fix INVITE with replaces transfer to ConfBridge
There is a problem when an INVITE-with-Replaces transfer targets a channel in a ConfBridge. The transfer will unconditionally swap out the ConfBridge channel. Unfortunately, the ConfBridge state will not be aware of this change. Unexpected behavior will happen as a result since ConfBridge channels currently can only be replaced by a masquerade and not normal bridge channel moves. * We just need to pretend that the channel isn't in a bridge (like other transfer methods already do) so the transfer channel will masquerade into the ConfBridge channel. Change-Id: I209beb0e748fa4f4b92a576f36afa8f495ba4c82
This commit is contained in:
@@ -912,6 +912,17 @@ void ast_bridge_remove_video_src(struct ast_bridge *bridge, struct ast_channel *
|
||||
*/
|
||||
const char *ast_bridge_video_mode_to_string(enum ast_bridge_video_mode_type video_mode);
|
||||
|
||||
/*!
|
||||
* \brief Acquire the channel's bridge for transfer purposes.
|
||||
* \since 13.21.0
|
||||
*
|
||||
* \param chan Channel involved in a transfer.
|
||||
*
|
||||
* \return The bridge the channel is in or NULL if it either isn't
|
||||
* in a bridge or should not be considered to be in a bridge.
|
||||
*/
|
||||
struct ast_bridge *ast_bridge_transfer_acquire_bridge(struct ast_channel *chan);
|
||||
|
||||
enum ast_transfer_result {
|
||||
/*! The transfer completed successfully */
|
||||
AST_BRIDGE_TRANSFER_SUCCESS,
|
||||
|
||||
Reference in New Issue
Block a user