diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 33ec7f06d9..7e11b2420f 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7376,6 +7376,12 @@ static void try_suggested_sip_codec(struct sip_pvt *p) ao2_ref(fmt, -1); } + + /* The original joint formats may have contained negotiated parameters (fmtp) + * like the Opus Codec or iLBC 20. The cached formats contain the default + * parameters, which could be different than the negotiated (joint) result. */ + ast_format_cap_replace_from_cap(p->jointcaps, original_jointcaps, AST_MEDIA_TYPE_UNKNOWN); + ao2_ref(original_jointcaps, -1); return; }