SSRC Generation, Detection, and Collision Handling
For the outgoing (audio) RTP stream in a VoIP call, MGU creates a random 32-bit SSRC (Synchronization Source) value. This value is used for all RTP packets in that stream throughout the stream as long as the stream is active. If a call is put on hold, or any setting of the actual RTP stream is changed (for example, DTMF relay mode is changed) by the MX-ONE Service Node, the current stream is closed and replaced by a new one. A new SSRC value is created for the new stream.
On the corresponding incoming RTP stream, the MGU validates all received RTP packets. Packets with any SSRC value will be accepted as long as they are one of two packets received with consecutive numbers and with the same SSRC value are received. This allows the sender to change the SSRC value for an RTP stream. A counter for the RTP-stream is incremented every time the SSRC value is changed. However, the counter is cleared when the time between two consecutive changes of the SSRC value is more than 1 second (fixed value).
When this counter reaches a value corresponding to the configured SSRC violation filter time, this is referred to as an “SSRC violation”, and will cause the used RTP port to be blocked for a while to avoid the violating port to be re-used. This situation is usually caused when there are two or more interleaved RTP streams towards same RTP port. If this happens there is probably an RTP sender that has not properly closed its RTP stream. In situations where such violations are frequent for a longer time, the “ssrc_violation_filter_time” can be increased, see the System Configuration Files section.