Merged revisions 221086 via svnmerge from
authorTerry Wilson <twilson@digium.com>
Wed, 30 Sep 2009 17:52:30 +0000 (17:52 +0000)
committerTerry Wilson <twilson@digium.com>
Wed, 30 Sep 2009 17:52:30 +0000 (17:52 +0000)
commit865daf4858ba8f3a592e08d37f8025d92c02810b
treef54b81d235c2605ab4a633cbe47be26b8eac2a6d
parenta4ece92018d051609c26e815fd966d045a3ebec3
Merged revisions 221086 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r221086 | twilson | 2009-09-30 09:49:11 -0500 (Wed, 30 Sep 2009) | 25 lines

  Change the SSRC by default when our media stream changes

  Be default, change SSRC when doing an audio stream changes Asterisk doesn't
  honor marker bit when reinvited to already-bridged RTP streams,resulting in
  far-end stack discarding packets with "old" timestamps that areactually part of
  a new stream.  This patch sends AST_CONTROL_SRCUPDATE whenever there is a
  reinvite, unless the 'constantssrc' is set to true in sip.conf.

  The original issue reported to Digium support detailed the following situation:
  ITSP <-> Asterisk 1.4.26.2 <-> SIP-based Application Server Call comes in
  fromITSP, Asterisk dials the app server which sends a re-invite back
  toAsterisk--not to negotiate to send media directly to the ITSP, but to
  indicatethat it's changing the stream it's sending to Asterisk.  The app
  servergenerates a new SSRC, sequence numbers, timestamps, and sets the marker
  bit on the new stream.  Asterisk passes through the teimstamp of the new stream,
  butdoes not reset the SSRC, sequence numbers, or set the marker bit.

  When the timestamp on the new stream is older than the timestamp on the
  originalstream, the ITSP (which doesn't know there has been any change) discards
  the newframes because it thinks they are too old.  This patch addresses this by
  changing the SSRC on a stream update unless constantssrc=true is set in
  sip.conf.

  Review: https://reviewboard.asterisk.org/r/374/
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c
configs/sip.conf.sample
include/asterisk/rtp_engine.h
main/rtp_engine.c
res/res_rtp_asterisk.c