Fix sequence number overflow over 16 bits causing codec change in RTP packets.
authorJonathan Rose <jrose@digium.com>
Thu, 27 Oct 2011 19:48:23 +0000 (19:48 +0000)
committerJonathan Rose <jrose@digium.com>
Thu, 27 Oct 2011 19:48:23 +0000 (19:48 +0000)
commite5ac65bb43ac5d92861d3b185ac7f828bcd94df8
treeca0ec5804f80eff77f0f9414df0b89294ab8e22c
parentb61256c64b343cdd26a4a42b9733e04fb2ace5d9
Fix sequence number overflow over 16 bits causing codec change in RTP packets.

Sequence number was handled as an unsigned integer (usually 32 bits I think, more
depending on the architecture) and was put into the rtp packet which is basically
just a bunch of bits using an or operation. Sequence number only has 16 bits
allocated to it in an RTP packet anyway, so it would add to the next field which
just happened to be the codec. This makes sure the sequence number is set to be
a 16 bit integer regardless of architecture (hopefully) and also makes it so the
incrementing of the sequence number does bitwise or at the peak of a 16 bit number
so that the value will be set back to 0 when going beyond 65535 anyway.

(closes issue ASTERISK-18291)
Reported by: Will Schick
Review: https://reviewboard.asterisk.org/r/1542/
........

Merged revisions 342602 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 342603 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@342604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
res/res_rtp_multicast.c