[asterisk-commits] mmichelson: trunk r208263 - in /trunk: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jul 23 10:46:39 CDT 2009
Author: mmichelson
Date: Thu Jul 23 10:46:34 2009
New Revision: 208263
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=208263
Log:
Merged revisions 208262 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r208262 | mmichelson | 2009-07-23 10:43:07 -0500 (Thu, 23 Jul 2009) | 8 lines
Properly handle 183 responses which do not contain an SDP.
(closes issue #15442)
Reported by: ffloimair
Patches:
15442.patch uploaded by mmichelson (license 60)
Tested by: tkarl, ffloimair
........
Modified:
trunk/ (props changed)
trunk/channels/chan_sip.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/channels/chan_sip.c
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=208263&r1=208262&r2=208263
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Thu Jul 23 10:46:34 2009
@@ -17934,7 +17934,6 @@
case 183: /* Session progress */
if (!req->ignore && (p->invitestate != INV_CANCELLED) && sip_cancel_destroy(p))
ast_log(LOG_WARNING, "Unable to cancel SIP destruction. Expect bad things.\n");
- /* Ignore 183 Session progress without SDP */
if (!req->ignore && p->owner) {
if (get_rpid(p, req)) {
/* Queue a connected line update */
@@ -17953,6 +17952,18 @@
if (!req->ignore && p->owner) {
/* Queue a progress frame */
ast_queue_control(p->owner, AST_CONTROL_PROGRESS);
+ }
+ } else {
+ /* Alcatel PBXs are known to send 183s with no SDP after sending
+ * a 100 Trying response. We're just going to treat this sort of thing
+ * the same as we would treat a 180 Ringing
+ */
+ /*XXX I'm just following the same procedure for a 180 response, which
+ * doesn't change the invitestate of p. Shouldn't it be INV_PROCEEDING
+ * though?
+ */
+ if (!req->ignore && p->owner) {
+ ast_queue_control(p->owner, AST_CONTROL_RINGING);
}
}
check_pendings(p);
More information about the asterisk-commits
mailing list