mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-10 06:49:40 +00:00
Stasis: Convey transfer information to applications
This fixes a class of issues where Stasis applications were not made aware that their channels were being manipulated or replaced by external entitiessuch as transfers, AMI commands, or dialplan applications such as Bridge(). Inconsistent information such as StasisEnd events with unknown channels as a result of masquerades has also been corrected. To accomplish these fixes, several new fields were added to blind and attended transfer messages as well as StasisStart and BridgeAttendedTransfer Stasis events. ASTERISK-23941 #close Review: https://reviewboard.asterisk.org/r/3865/ Review: https://reviewboard.asterisk.org/r/3857/ Review: https://reviewboard.asterisk.org/r/3852/ Review: https://reviewboard.asterisk.org/r/3816/ Review: https://reviewboard.asterisk.org/r/3731/ Review: https://reviewboard.asterisk.org/r/3729/ Review: https://reviewboard.asterisk.org/r/3728/ ........ Merged revisions 420325 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@420338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -34,7 +34,7 @@ struct ast_datastore_info {
|
||||
void (*destroy)(void *data); /*!< Destroy function */
|
||||
|
||||
/*!
|
||||
* \brief Fix up channel references
|
||||
* \brief Fix up channel references on the masquerading channel
|
||||
*
|
||||
* \arg data The datastore data
|
||||
* \arg old_chan The old channel owning the datastore
|
||||
@@ -48,6 +48,20 @@ struct ast_datastore_info {
|
||||
* \return nothing.
|
||||
*/
|
||||
void (*chan_fixup)(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan);
|
||||
|
||||
/*!
|
||||
* \brief Fix up channel references on the channel being masqueraded into
|
||||
*
|
||||
* \arg data The datastore data
|
||||
* \arg old_chan The old channel owning the datastore
|
||||
* \arg new_chan The new channel owning the datastore
|
||||
*
|
||||
* This is the same as the above callback, except it is called for the channel
|
||||
* being masqueraded into instead of the channel that is masquerading.
|
||||
*
|
||||
* \return nothing.
|
||||
*/
|
||||
void (*chan_breakdown)(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan);
|
||||
};
|
||||
|
||||
/*! \brief Structure for a data store object */
|
||||
|
Reference in New Issue
Block a user