From fb11296a9b38f71923919ed493d23f11c97a3540 Mon Sep 17 00:00:00 2001 From: "Joshua C. Colp" Date: Tue, 30 Aug 2022 10:01:29 -0300 Subject: [PATCH] res_pjsip_sdp_rtp: Skip formats without SDP details. When producing an outgoing SDP we iterate through the configured formats and produce SDP information. It is possible for some configured formats to not have SDP information available. If this is the case we skip over them to allow the SDP to still be produced. ASTERISK-29185 Change-Id: I3e37569aa4ca341260e6ca5904dc2f75e46a1749 --- res/res_pjsip_sdp_rtp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c index 3e10cfdb04..e7b19e4696 100644 --- a/res/res_pjsip_sdp_rtp.c +++ b/res/res_pjsip_sdp_rtp.c @@ -1902,6 +1902,16 @@ static int create_outgoing_sdp_stream(struct ast_sip_session *session, struct as continue; } + /* It is possible for some formats not to have SDP information available for them + * and if this is the case, skip over them so the SDP can still be created. + */ + if (!ast_rtp_lookup_sample_rate2(1, format, 0)) { + ast_log(LOG_WARNING, "Format '%s' can not be added to SDP, consider disallowing it on endpoint '%s'\n", + ast_format_get_name(format), ast_sorcery_object_get_id(session->endpoint)); + ao2_ref(format, -1); + continue; + } + /* If this stream is not a transport we need to use the transport codecs structure for payload management to prevent * conflicts. */ -- 2.47.2