aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_h323.c
diff options
context:
space:
mode:
authormvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-24 22:16:48 +0000
committermvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-24 22:16:48 +0000
commit94979a8bde5da5087e67261a4ff435aaff6188e4 (patch)
tree2c247ba7f500b9bdc0fa9867d833b6af194d7139 /channels/chan_h323.c
parente8d5948d534e44d389e8ceab04c6e1b007b8fd6d (diff)
Pass the hangup cause all the way to the calling app/channel.
(closes issue #11328) Reported by: rain Patches: 20071207__pass_cause_in_hangup_control_frame.diff.txt uploaded by Corydon76 (license 14) brought up-to-date to trunk by me git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114637 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_h323.c')
-rw-r--r--channels/chan_h323.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index a3f6ee6f3..dec9aa021 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -342,7 +342,7 @@ static void __oh323_update_info(struct ast_channel *c, struct oh323_pvt *pvt)
ast_debug(1, "Process pending hangup for %s\n", c->name);
c->_softhangup |= AST_SOFTHANGUP_DEV;
c->hangupcause = pvt->hangupcause;
- ast_queue_hangup(c);
+ ast_queue_hangup(c, pvt->hangupcause);
pvt->needhangup = 0;
pvt->newstate = pvt->newcontrol = pvt->newdigit = pvt->DTMFsched = -1;
}
@@ -2379,7 +2379,7 @@ static void cleanup_connection(unsigned call_reference, const char *call_token)
/* Send hangup */
if (pvt->owner) {
pvt->owner->_softhangup |= AST_SOFTHANGUP_DEV;
- ast_queue_hangup(pvt->owner);
+ ast_queue_hangup(pvt->owner, -1);
ast_channel_unlock(pvt->owner);
}
ast_mutex_unlock(&pvt->lock);
@@ -2404,7 +2404,7 @@ static void hangup_connection(unsigned int call_reference, const char *token, in
if (pvt->owner && !ast_channel_trylock(pvt->owner)) {
pvt->owner->_softhangup |= AST_SOFTHANGUP_DEV;
pvt->owner->hangupcause = pvt->hangupcause = cause;
- ast_queue_hangup(pvt->owner);
+ ast_queue_hangup(pvt->owner, cause);
ast_channel_unlock(pvt->owner);
}
else {