[svn-commits] oej: branch oej/sencha-fixing-183-without-sdp-1.8 r412066 - /team/oej/sencha-...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Apr 10 03:54:55 CDT 2014


Author: oej
Date: Thu Apr 10 03:54:45 2014
New Revision: 412066

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=412066
Log:
If we already have received a SDP with a 183 or something else, do not send ringing.

Modified:
    team/oej/sencha-fixing-183-without-sdp-1.8/channels/chan_sip.c

Modified: team/oej/sencha-fixing-183-without-sdp-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/sencha-fixing-183-without-sdp-1.8/channels/chan_sip.c?view=diff&rev=412066&r1=412065&r2=412066
==============================================================================
--- team/oej/sencha-fixing-183-without-sdp-1.8/channels/chan_sip.c (original)
+++ team/oej/sencha-fixing-183-without-sdp-1.8/channels/chan_sip.c Thu Apr 10 03:54:45 2014
@@ -20962,9 +20962,21 @@
 			/* 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
+			 *
+ 			 * Lync sends 183 w sdp using PRACK the first time. AFter that, 183
+			 * without SDP. We need to keep the media stream open and not send
+			 * ringing in that case.
 			 */
-			if (!req->ignore && p->owner) {
-				ast_queue_control(p->owner, AST_CONTROL_RINGING);
+			struct ast_sockaddr remote_address = {{0,}};
+			/* If we have a remote IP for RTP, we already have a SDP and we 
+			   are fine. */
+			ast_rtp_instance_get_remote_address(p->rtp, &remote_address);
+			if (ast_sockaddr_isnull(&remote_address) || (!ast_strlen_zero(p->theirprovtag) && strcmp(p->theirtag, p->theirprovtag))) {
+				/* We got a 183 without SDP without having a previous SDP. Now, send ringing */
+				if (!req->ignore && p->owner) {
+
+					ast_queue_control(p->owner, AST_CONTROL_RINGING);
+				}
 			}
 		}
 		check_pendings(p);




More information about the svn-commits mailing list