[asterisk-commits] file: trunk r162656 - in /trunk: ./ main/rtp.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Dec 10 10:06:59 CST 2008


Author: file
Date: Wed Dec 10 10:06:59 2008
New Revision: 162656

URL: http://svn.digium.com/view/asterisk?view=rev&rev=162656
Log:
Merged revisions 162653 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r162653 | file | 2008-12-10 12:05:29 -0400 (Wed, 10 Dec 2008) | 6 lines
  
  Increment the sequence number on the end packets for RFC2833. After reading the RFC some more and doing some testing I agree with this change.
  (closes issue #12983)
  Reported by: vt
  Patches:
        dtmf_inc_seqnum_on_end_pkts.diff uploaded by vt (license 520)
........

Modified:
    trunk/   (props changed)
    trunk/main/rtp.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/main/rtp.c
URL: http://svn.digium.com/view/asterisk/trunk/main/rtp.c?view=diff&rev=162656&r1=162655&r2=162656
==============================================================================
--- trunk/main/rtp.c (original)
+++ trunk/main/rtp.c Wed Dec 10 10:06:59 2008
@@ -3151,16 +3151,17 @@
 	rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
 
 	rtpheader = (unsigned int *)data;
-	rtpheader[0] = htonl((2 << 30) | (1 << 23) | (rtp->send_payload << 16) | (rtp->seqno));
 	rtpheader[1] = htonl(rtp->lastdigitts);
 	rtpheader[2] = htonl(rtp->ssrc);
 	rtpheader[3] = htonl((digit << 24) | (0xa << 16) | (rtp->send_duration));
 	/* Set end bit */
 	rtpheader[3] |= htonl((1 << 23));
-	rtpheader[0] = htonl((2 << 30) | (rtp->send_payload << 16) | (rtp->seqno));
+
 	/* Send 3 termination packets */
 	for (i = 0; i < 3; i++) {
+		rtpheader[0] = htonl((2 << 30) | (rtp->send_payload << 16) | (rtp->seqno));
 		res = sendto(rtp->s, (void *) rtpheader, hdrlen + 4, 0, (struct sockaddr *) &rtp->them, sizeof(rtp->them));
+		rtp->seqno++;
 		if (res < 0)
 			ast_log(LOG_ERROR, "RTP Transmission error to %s:%d: %s\n",
 				ast_inet_ntoa(rtp->them.sin_addr),
@@ -3173,7 +3174,6 @@
 	rtp->lastts += rtp->send_duration;
 	rtp->sending_digit = 0;
 	rtp->send_digit = 0;
-	rtp->seqno++;
 
 	return res;
 }




More information about the asterisk-commits mailing list