/// <summary> /// Diagnostic handler to print out our RTCP sender/receiver reports. /// </summary> //private static void RtpSession_OnSendReport(SDPMediaTypesEnum mediaType, RTCPCompoundPacket sentRtcpReport) //{ // if (sentRtcpReport.SenderReport != null) // { // var sr = sentRtcpReport.SenderReport; // Log.LogDebug($"RTCP sent SR {mediaType}, ssrc {sr.SSRC}, pkts {sr.PacketCount}, bytes {sr.OctetCount}."); // } // else // { // var rrSample = sentRtcpReport.ReceiverReport.ReceptionReports.First(); // Log.LogDebug($"RTCP sent RR {mediaType}, ssrc {rrSample.SSRC}, seqnum {rrSample.ExtendedHighestSequenceNumber}."); // } //} /// <summary> /// Diagnostic handler to print out our RTCP reports from the remote WebRTC peer. /// </summary> private static void RtpSession_OnReceiveReport(IPEndPoint remoteEP, SDPMediaTypesEnum mediaType, RTCPCompoundPacket recvRtcpReport) { Log.LogDebug($"RTCP receive {mediaType} from {remoteEP} CNAME {recvRtcpReport.SDesReport.CNAME} SSRC {recvRtcpReport.SDesReport.SSRC}."); //var rr = (recvRtcpReport.SenderReport != null) ? recvRtcpReport.SenderReport.ReceptionReports.FirstOrDefault() : recvRtcpReport.ReceiverReport.ReceptionReports.FirstOrDefault(); //if (rr != null) //{ // Log.LogDebug($"RTCP {mediaType} Receiver Report: SSRC {rr.SSRC}, pkts lost {rr.PacketsLost}, delay since SR {rr.DelaySinceLastSenderReport}."); //} //else //{ // Log.LogDebug($"RTCP {mediaType} Receiver Report: empty."); //} }
private void NewRTCPPacket(RTCPCompoundPacket packet) { }
/// <summary> /// Diagnostic handler to print out our RTCP reports from the remote WebRTC peer. /// </summary> private static void RtpSession_OnReceiveReport(IPEndPoint remoteEndPoint, SDPMediaTypesEnum mediaType, RTCPCompoundPacket recvRtcpReport) { if (recvRtcpReport.Bye != null) { logger.LogDebug($"RTCP recv BYE {mediaType}."); } else { var rr = recvRtcpReport.ReceiverReport.ReceptionReports.FirstOrDefault(); if (rr != null) { logger.LogDebug($"RTCP {mediaType} Receiver Report: SSRC {rr.SSRC}, pkts lost {rr.PacketsLost}, delay since SR {rr.DelaySinceLastSenderReport}."); } else { logger.LogDebug($"RTCP {mediaType} Receiver Report: empty."); } } }
/// <summary> /// Diagnostic handler to print out our RTCP reports from the remote WebRTC peer. /// </summary> private static void RtpSession_OnReceiveReport(IPEndPoint remoteEndPoint, SDPMediaTypesEnum mediaType, RTCPCompoundPacket report) { //var rr = recvRtcpReport.ReceiverReport.ReceptionReports.FirstOrDefault(); //if (rr != null) //{ // Console.WriteLine($"RTCP {mediaType} Receiver Report: SSRC {rr.SSRC}, pkts lost {rr.PacketsLost}, delay since SR {rr.DelaySinceLastSenderReport}."); //} //else //{ // Console.WriteLine($"RTCP {mediaType} Receiver Report: empty."); //} ReceptionReportSample rrs = null; string cname = null; if (report.SDesReport != null) { cname = report.SDesReport.CNAME; } if (report.SenderReport != null) { var sr = report.SenderReport; rrs = report.SenderReport.ReceptionReports.FirstOrDefault(); Console.WriteLine($"RTCP recv SR {mediaType}, ssrc {sr.SSRC}, packets sent {sr.PacketCount}, bytes sent {sr.OctetCount}, (cname={cname})."); } if (report.ReceiverReport != null) { rrs = report.ReceiverReport.ReceptionReports.FirstOrDefault(); } if (rrs != null) { Console.WriteLine($"RTCP recv RR {mediaType}, ssrc {rrs.SSRC}, pkts lost {rrs.PacketsLost}, delay since SR {rrs.DelaySinceLastSenderReport}, (cname={cname})."); } if (report.Bye != null) { Console.WriteLine($"RTCP recv BYE {mediaType}, reason {report.Bye.Reason}, (cname={cname})."); } }