[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