diff options
author | Kinsey Moore <kmoore@digium.com> | 2012-05-14 19:44:27 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2012-05-14 19:44:27 +0000 |
commit | b5a6de76fc71e3f604761885dd844975a11893ee (patch) | |
tree | 5a8f74f510374ec3768b4e778a797b529133cb8a /main/rtp_engine.c | |
parent | fef9a32fb410b47da4cb195f0af2f63f8cac0f03 (diff) |
Commit framework for HANGUPCAUSE (replacement for SIP_CAUSE)
This is the starting point for the Asterisk 11: Who Hung Up work and provides
a framework which will allow channel drivers to report the types of hangup
cause information available in SIP_CAUSE without incurring the overhead of the
MASTER_CHANNEL dialplan function. The initial implementation only includes
cause generation for chan_sip and does not include cause code translation
utilities.
This change deprecates SIP_CAUSE and replaces its method of reporting cause
codes with the new framework. This change also deprecates the 'storesipcause'
option in sip.conf.
Review: https://reviewboard.asterisk.org/r/1822/
(Closes issue SWP-4221)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@366408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/rtp_engine.c')
-rw-r--r-- | main/rtp_engine.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/main/rtp_engine.c b/main/rtp_engine.c index 681029ffb..522ed0db1 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -928,6 +928,9 @@ static enum ast_bridge_result local_bridge_loop(struct ast_channel *c0, struct a ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); + } else if (fr->subclass.integer == AST_CONTROL_PVT_CAUSE_CODE) { + ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); + ast_frfree(fr); } else { *fo = fr; *rc = who; @@ -1219,6 +1222,9 @@ static enum ast_bridge_result remote_bridge_loop(struct ast_channel *c0, ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); + } else if (fr->subclass.integer == AST_CONTROL_PVT_CAUSE_CODE) { + ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); + ast_frfree(fr); } else { *fo = fr; *rc = who; |