diff options
author | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-04-24 22:16:48 +0000 |
---|---|---|
committer | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-04-24 22:16:48 +0000 |
commit | 94979a8bde5da5087e67261a4ff435aaff6188e4 (patch) | |
tree | 2c247ba7f500b9bdc0fa9867d833b6af194d7139 /channels/chan_h323.c | |
parent | e8d5948d534e44d389e8ceab04c6e1b007b8fd6d (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.c | 6 |
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 { |