diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 19f8aa308a801fe3c7072a0027f27a62b6302c7c..d44bf8a83e3d6fd73d46f35a4f69d6c669c9d7b3 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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);
 	}