RE: Issue 180: RTCP packet routing

Can we also clarify the meaning of the SSRC in 
"
WebIDLdictionary RTCRtcpParameters {
    unsigned long ssrc;
    DOMString     cname;
    boolean       reducedSize = false;
    boolean       mux = true;
}; 
" ?

Spec says: 
"ssrc of type unsigned long
The SSRC to be used in the Receiver Report "SSRC of packet sender" field as defined in [RFC3550] Section 6.4.2. If unset, ssrc is chosen by the browser, and the chosen value is not reflected in RTCRtcpParameters.ssrc. If the browser chooses the ssrc it may change it in event of a collision, as described in [RFC3550]."

There is no ambiguity for RtpReceiver that this SSRC is the value to put into the "SSRC of packet sender" field in receiver report. 
On RtpSender side, we should expect this is the SSRC in the incoming receiver report's "SSRC of packet sender" field since RtpSender doesn't send receiver reports.  

For example, 
Assume we are the caller, we send an offer with "a=ssrc : 100", and get an answer with "a=ssrc : 200". Caller creates one RtpSender and one RtpReceiver. 

RtpReceiver;
   bRTCRtpParameters.encodings[0].ssrc = 200;
   bRTCRtpParameters.rtcp.ssrc = 100;

RtpSender: 
   aRTCRtpParameters.encodings[0].ssrc = 100;
   aRTCRtpParameters.rtcp.ssrc = 200;

This should be sufficient to determine all RTCP routing if a "a=ssrc" line is negotiated. 

Thanks, 

-Jiannan 

-----Original Message-----
From: Bernard Aboba [mailto:Bernard.Aboba@microsoft.com] 
Sent: Friday, February 13, 2015 4:24 PM
To: public-ortc@w3.org
Subject: RE: Issue 180: RTCP packet routing

An update to the proposed Section 8.3.2 text: 

8.3.2 RTCP matching rules

The RTP matching rules also influence how RTCP Sender Reports (SRs), SDES and BYE packets are delivered to RTCRtpReceiver objects. When these packets are received, sender.ssrc is set to the "SSRC of sender" field defined in [RFC3550] Section 6.4.1 (Sender Report), the "SSRC/CSRC" field defined in [RFC3550] Section 6.5 (SDES) or the "SSRC/CSRC" field defined in [RFC3550] Section 6.6 (BYE). If rtcp_receiver == ssrc_table[sender.ssrc] is set, the RTCP SR, SDES or BYE packet is delivered to rtcp_receiver. If it is unset, the RTCP packet is queued for 30 seconds, and ssrc_table[sender.ssrc] is checked again, in case reception of an RTP packet resulted in an addition to ssrc_table[]. If when the timeout expires ssrc_table[sender.ssrc] is still unset, the RTCP SR, SDES or BYE packet is discarded.

When RTCP RR or Feedback Messages are received, the "SSRC of source" field defined in [RFC3550] Section 6.4.2 (Receiver Report) or the "SSRC of media source" field defined in [RFC4585] Section 6.1 (Feedback Messages), is checked against the values of parameters.codecs[j].parameters.ssrc (for j = 0 to the number of codecs) provided in calls to sender.send(parameters). If a match is found, the RTCP packet is delivered to sender.

Received on Saturday, 14 February 2015 01:03:59 UTC