diff --git a/channels/chan_sip.c b/channels/chan_sip.c index d62a811a11..51c17c5383 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7371,6 +7371,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; }