3.1.5 Message Processing Events and Sequencing Rules
This protocol processes RTP-related packets as specified in [RFC3550] section 6 and section A.1, with the following additions:
If RTP and RTCP are being multiplexed, as in the case of TCP, the payload type field MUST be used to differentiate between RTP and RTCP.
For every received RTP packet, the participant time-out timer of the participant respective to its SSRC MUST be restarted.
If the throttling mechanism is used, the following actions SHOULD be executed on receipt of every RTP packet:
This code follows the product behavior in footnote <38>.
-
IF SSRC != LastGoodSSRC THEN IF SSRC = ResyncSSRC THEN SET LastGoodSSRC = SSRC ELSE IF ThrottlingMode is on THEN IF SSRC !=LastBadSSRC THEN SET LastBadSSRC = SSRC RESTART throttling mode timer ENDIF DROP packet ELSE SET ResyncSSRC = SSRC START throttling mode timer ENDIF ENDIF ENDIF GET participant's information from SSRC IF SeqNum made a large jump from NextGoodSeqNum (according to [RFC3550] section A.1) THEN IF SeqNum = ResyncSeqNum SET NextGoodSeqNum = SeqNum's successor ELSE IF ThrottlingMode is on THEN IF SeqNum != NextBadSeqNum THEN SET NextBadSeqNum = SeqNum's successor RESTART throttling mode timer ELSE SET NextBadSeqNum = SeqNum's successor ENDIF DROP packet ELSE SET ResyncSeqNum = SeqNum's successor START throttling mode timer ENDIF ENDIF ENDIF
If the dominant speaker notification extension is used, the following actions MUST be executed on receipt of every RTP packet from an audio mixer:
IF CSRC list is empty SET IsDominantSpeakerValid to false NOTIFY upper layer that stream has no dominant speaker ELSE SET IsDominantSpeakerValid to true START dominant speaker expiration timer IF first CSRC != DominantSpeaker SET DominantSpeaker = first CSRC NOTIFY upper layer that dominant speaker has changed ENDIF ENDIF
If the inter-arrival jitter estimation is computed, the following action SHOULD be executed on receipt of every RTP packet from the network:<39>
IF THE PACKET IS NOT DTMF CALCULATE JITTER per algorithm in [RFC3550] Section 6.4.1 ELSE IGNORE THIS PACKET FOR JITTER CALCULATION ENDIF