Opened 8 years ago

Closed 7 years ago

#1440 closed defect (fixed)

Proper set up of RTCP compound packet (thanks Werner Dittmann for the report)

Reported by: nanang Owned by: nanang
Priority: normal Milestone: release-1.14
Component: pjmedia Version: 1.x-branch
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by nanang)

Original report can be found here.

The problems reported:

  • an RTCP compound packet contains a SDES only. No RR, not even an empty RR.
  • sends SR without attaching an SDES packet
  • sends a BYE packet without an RR and an SDES.

RFC 3550 6.1:

  • all RTCP packets MUST be sent in a compound packet of at least two individual packets.
  • The first RTCP packet in the compound packet MUST always be a report packet to facilitate header validation as described in Appendix A.2. This is true even if no data has been sent or received, in which case an empty RR MUST be sent, and even if the only other RTCP packet in the compound packet is a BYE.
  • An SDES packet containing a CNAME item MUST be included in each compound RTCP packet, except as noted in Section 9.1 (about confidentiality/encryption).
  • Other RTCP packet types, including those yet to be defined, MAY follow in any order, except that BYE SHOULD be the last packet sent with a given SSRC/CSRC.

Change History (3)

comment:1 Changed 7 years ago by nanang

  • Resolution set to fixed
  • Status changed from new to closed

(In [3960]) Fix #1440: Send and parse RTCP compound packet, containing report (RR/SR/XR), SDES, and BYE.

comment:2 Changed 7 years ago by nanang

  • Description modified (diff)
  • Resolution fixed deleted
  • Status changed from closed to reopened

Reopened for issue:

  • RTCP generation overrides outgoing RTP payload because of shared buffer, so the RTP receiver will get noise.

comment:3 Changed 7 years ago by nanang

  • Resolution set to fixed
  • Status changed from reopened to closed

(In [3969]) Fix #1440:

  • Use separate buffer for outgoing RTCP. Previously, RTCP generation might override outgoing RTP payload (because of shared buffer).
  • Use exact size for RTCP-XR content buffer. Previously RTCP-XR content buffer size was set to PJMEDIA_MAX_MTU, quite huge wasted space.
Note: See TracTickets for help on using tickets.