Skip to content
Snippets Groups Projects
  • Mark Michelson's avatar
    10fa49e3
    Add rtcp-mux support · 10fa49e3
    Mark Michelson authored
    This commit adds support for RFC 5761: Multiplexing RTP Data and Control
    Packets on a Single Port. Specifically, it enables the feature when
    using chan_pjsip.
    
    A new option, "rtcp_mux" has been added to endpoint configuration in
    pjsip.conf. If set, then Asterisk will attempt to use rtcp-mux with
    whatever it communicates with. Asterisk follows the rules set forth in
    RFC 5761 with regards to falling back to standard RTCP behavior if the
    far end does not indicate support for rtcp-mux.
    
    The lion's share of the changes in this commit are in
    res_rtp_asterisk.c. This is because it was pretty much hard wired to
    have an RTP and an RTCP transport. The strategy used here is that when
    rtcp-mux is enabled, the current RTCP transport and its trappings (such
    as DTLS SSL session) are freed, and the RTCP session instead just
    mooches off the RTP session. This leads to a lot of specialized if
    statements throughout.
    
    ASTERISK-26732 #close
    Reported by Dan Jenkins
    
    Change-Id: If46a93ba1282418d2803e3fd7869374da8b77ab5
    10fa49e3
    History
    Add rtcp-mux support
    Mark Michelson authored
    This commit adds support for RFC 5761: Multiplexing RTP Data and Control
    Packets on a Single Port. Specifically, it enables the feature when
    using chan_pjsip.
    
    A new option, "rtcp_mux" has been added to endpoint configuration in
    pjsip.conf. If set, then Asterisk will attempt to use rtcp-mux with
    whatever it communicates with. Asterisk follows the rules set forth in
    RFC 5761 with regards to falling back to standard RTCP behavior if the
    far end does not indicate support for rtcp-mux.
    
    The lion's share of the changes in this commit are in
    res_rtp_asterisk.c. This is because it was pretty much hard wired to
    have an RTP and an RTCP transport. The strategy used here is that when
    rtcp-mux is enabled, the current RTCP transport and its trappings (such
    as DTLS SSL session) are freed, and the RTCP session instead just
    mooches off the RTP session. This leads to a lot of specialized if
    statements throughout.
    
    ASTERISK-26732 #close
    Reported by Dan Jenkins
    
    Change-Id: If46a93ba1282418d2803e3fd7869374da8b77ab5