I am trying to parse the RTCPSend and RTCPReceived events and this thread gives a good overview and answeres some ofthe questions I had. But I have some more followup queries:
In the Events there are two SSRCs defined. for example in RTCPReceived:
SSRC - The SSRC identifier for the remote system
ReportXSourceSSRC - The SSRC for the source of this report block.
What is the difference between these two?
Printing the EventName:pt with SSRC and ReportXSourceSSRC gives the following output:
SSRCs in RTCPReceived:200(SR): 3849185100, []
SSRCs in RTCPReceived:200(SR): 3849185105, []
SSRCs in RTCPReceived:200(SR): 3849185109, []
SSRCs in RTCPReceived:200(SR): 3849185116, []
SSRCs in RTCPReceived:200(SR): 3849185123, []
SSRCs in RTCPReceived:200(SR): 3849185104, [722552377]
SSRCs in RTCPReceived:200(SR): 3849185109, [722552377]
SSRCs in RTCPReceived:200(SR): 3849185114, [722552377]
SSRCs in RTCPReceived:200(SR): 3849185119, [722552377]
SSRCs in RTCPReceived:200(SR): 3849185124, [722552377]
The SSRC in the Event varies, what could be the reason for this?
It depends on whether it’s a send or receive event. As I understand it though SSRC is always the SSRC of the sender, and ReportXSourceSSRC is always the SSRC of the receiver. Or better said from rfc3550#section-6.4 - SSRC_n:
“The SSRC identifier of the source to which the information in this reception report block pertains.”
So for the RTCPReceived event (Asterisk receives an RTCP report from a remote device):
SSRC - The SSRC identifier for the remote system, i.e. the SSRC of the remote device that sent the report to Asterisk.
ReportXSourceSSRC - Asterisk’s SSRC for an associated RTP/RTCP instance
And for the RTCPSent event (Asterisk sent an RTCP report to a remote device):
SSRC - The SSRC identifier for our stream, i.e. Asterisk’s SSRC for a given RTP/RTCP instance
ReportXSourceSSRC - The SSRC for the source of this report block, i.e. the remote device’s SSRC
The SSRC in the Event varies, what could be the reason for this?
It appears your Asterisk instance is receiving RTCP reports from multiple source streams. So for example you currently have multiple calls up, or perhaps an SFU enabled video conference.