diff options
author | Kinsey Moore <kmoore@digium.com> | 2014-08-20 13:06:33 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2014-08-20 13:06:33 +0000 |
commit | 36f4bff943c0ea83b3d1a3ab5243658d64b16ba3 (patch) | |
tree | 7bc49bbdb265bfae3c007c1b23f9964c202ae5f9 /include/asterisk | |
parent | 01f1ff1f77101b2612ddb885dc6e22125e46a9fb (diff) |
Stasis: Add information to blind transfer event
When a blind transfer occurs that is forced to create a local channel
pair to satisfy the transfer request, information about the local
channel pair is not published. This adds a field to describe that
channel to the blind transfer message struct so that this information
is conveyed properly to consumers of the blind transfer message.
This also fixes a bug in which Stasis() was unable to properly identify
the channel that was replacing an existing Stasis-controlled channel
due to a blind transfer.
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3921/
........
Merged revisions 421537 from http://svn.asterisk.org/svn/asterisk/branches/12
........
Merged revisions 421538 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@421539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/stasis_bridges.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/asterisk/stasis_bridges.h b/include/asterisk/stasis_bridges.h index a4e46cdb0..699e27626 100644 --- a/include/asterisk/stasis_bridges.h +++ b/include/asterisk/stasis_bridges.h @@ -300,6 +300,8 @@ struct ast_blind_transfer_message { char exten[AST_MAX_EXTENSION]; /*! Transferee channel. NULL if there were multiple transferee channels */ struct ast_channel_snapshot *transferee; + /*! The channel replacing the transferer when multiple parties are being transferred */ + struct ast_channel_snapshot *replace_channel; }; /*! @@ -312,11 +314,15 @@ struct ast_blind_transfer_message { * \param to_transferee The bridge between the transferer and transferee plus the transferer channel * \param context The destination context for the blind transfer * \param exten The destination extension for the blind transfer - * \param transferee_channel If a single channel is being transferred, this is it. If multiple parties are being transferred, this is NULL. + * \param transferee_channel If a single channel is being transferred, this is it. If + * multiple parties are being transferred, this is NULL. + * \param replace_channel If multiple parties are being transferred or the transfer + * cannot reach across the bridge due to bridge flags, this is + * the channel connecting their bridge to the destination. */ void ast_bridge_publish_blind_transfer(int is_external, enum ast_transfer_result result, struct ast_bridge_channel_pair *to_transferee, const char *context, const char *exten, - struct ast_channel *transferee_channel); + struct ast_channel *transferee_channel, struct ast_channel *replace_channel); enum ast_attended_transfer_dest_type { /*! The transfer failed, so there is no appropriate final state */ |