diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-18 18:25:55 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-18 18:25:55 +0000 |
commit | 3f7c58e49af66ec3545a689b00267ea41dacaf7b (patch) | |
tree | e3cb4dc86b73c0b29908ff4869066745f0c7ba1a /include/asterisk/channel.h | |
parent | ec27f636d2458e359cd0b91d275c748607697879 (diff) |
Fix a crash in the end_bridge_callback of app_dial and
app_followme which would occur at the end of an attended
transfer. The error occurred because we initially stored
a pointer to an ast_channel which then was hung up due
to a masquerade.
This commit adds a "fixup" callback to the bridge_config
structure to allow for end_bridge_callback_data to be
changed in the case that a new channel pointer is needed
for the end_bridge_callback.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@157305 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/channel.h')
-rw-r--r-- | include/asterisk/channel.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index be08873ae..ea4dac2bc 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -542,6 +542,10 @@ struct ast_bridge_config { unsigned int flags; void (* end_bridge_callback)(void *); /*!< A callback that is called after a bridge attempt */ void *end_bridge_callback_data; /*!< Data passed to the callback */ + /*! If the end_bridge_callback_data refers to a channel which no longer is going to + * exist when the end_bridge_callback is called, then it needs to be fixed up properly + */ + void (*end_bridge_callback_data_fixup)(struct ast_bridge_config *bconfig, struct ast_channel *originator, struct ast_channel *terminator); }; struct chanmon; |