chan_sip: No rtpmap for static RTP payload IDs in SDP.
authorAlexander Traud <pabstraud@compuserve.com>
Wed, 8 Jun 2016 07:11:40 +0000 (09:11 +0200)
committerAlexander Traud <pabstraud@compuserve.com>
Wed, 8 Jun 2016 07:13:01 +0000 (09:13 +0200)
This saves around 100 bytes when G.711, G.722, G.729, and GSM are advertised in
SDP. This reduces the chance to hit the MTU bearer of 1300 bytes for SIP over
UDP, if many codecs are allowed in Asterisk. This new feature is enabled
together with the optional feature compactheaders=yes via the file sip.conf.

ASTERISK-25578 #close

Change-Id: I16491b1937862de26f84fa0ffe679a6bab925044

channels/chan_sip.c

index 19f8aa3..d44bf8a 100644 (file)
@@ -12996,7 +12996,7 @@ static void add_codec_to_sdp(const struct sip_pvt *p,
        /* Opus mandates 2 channels in rtpmap */
        if (ast_format_cmp(format, ast_format_opus) == AST_FORMAT_CMP_EQUAL) {
                ast_str_append(a_buf, 0, "a=rtpmap:%d %s/%u/2\r\n", rtp_code, mime, rate);
-       } else {
+       } else if ((35 <= rtp_code) || !(sip_cfg.compactheaders)) {
                ast_str_append(a_buf, 0, "a=rtpmap:%d %s/%u\r\n", rtp_code, mime, rate);
        }