[svn-commits] mmichelson: branch 10 r368499 - in /branches/10: ./ channels/chan_sip.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Mon Jun 4 17:02:30 CDT 2012
Author: mmichelson
Date: Mon Jun 4 17:02:26 2012
New Revision: 368499
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=368499
Log:
Relay proper SIP responses on calling side.
Revision 351130 broke corect HANGUPCAUSE setting
for the 404 case in chan_sip. Other cases were also
potentially broken. This patch fixes the relaying
of causes to be what they used to be.
(closes issue ASTERISK-19914)
Reported by Pavel Troller
Tested by Walter Doekes (via a reviewboard test to be committed later)
Patches:
chan_sip.diff uploaded by Pavel Troller (license #6302)
........
Merged revisions 368498 from http://svn.asterisk.org/svn/asterisk/branches/1.8
Modified:
branches/10/ (props changed)
branches/10/channels/chan_sip.c
Propchange: branches/10/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: branches/10/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/10/channels/chan_sip.c?view=diff&rev=368499&r1=368498&r2=368499
==============================================================================
--- branches/10/channels/chan_sip.c (original)
+++ branches/10/channels/chan_sip.c Mon Jun 4 17:02:26 2012
@@ -20988,7 +20988,7 @@
ast_log(LOG_WARNING, "Received response: \"Forbidden\" from '%s'\n", sip_get_header(&p->initreq, "From"));
if (!req->ignore && p->owner) {
ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
break;
@@ -20996,7 +20996,7 @@
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
if (p->owner && !req->ignore) {
ast_set_hangupsource(p->owner, p->owner->name, 0);
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
break;
@@ -21006,7 +21006,7 @@
ast_log(LOG_WARNING, "Re-invite to non-existing call leg on other UA. SIP dialog '%s'. Giving up.\n", p->callid);
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
if (p->owner) {
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
break;
@@ -21021,7 +21021,7 @@
append_history(p, "Identity", "SIP identity is required. Not supported by Asterisk.");
ast_log(LOG_WARNING, "SIP identity required by proxy. SIP dialog '%s'. Giving up.\n", p->callid);
if (p->owner && !req->ignore) {
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
break;
@@ -21054,7 +21054,7 @@
} else {
/* We can't set up this call, so give up */
if (p->owner && !req->ignore) {
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
}
break;
@@ -21062,7 +21062,7 @@
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
if (p->owner && !req->ignore) {
if (p->owner->_state != AST_STATE_UP) {
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
} else {
/* This is a re-invite that failed. */
/* Reset the flag after a while
@@ -21086,7 +21086,7 @@
case 501: /* Not implemented */
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
if (p->owner) {
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_CONGESTION);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
}
break;
}
@@ -22002,7 +22002,7 @@
default:
/* Send hangup */
if (owner && sipmethod != SIP_BYE)
- ast_queue_hangup_with_cause(p->owner, AST_CAUSE_PROTOCOL_ERROR);
+ ast_queue_hangup_with_cause(p->owner, hangup_sip2cause(resp));
break;
}
/* ACK on invite */
More information about the svn-commits
mailing list