mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
chan_sip: Remember SDP negotiation on SIP_CODEC_INBOUND.
After a SIP_CODEC_INBOUND in the dialplan, do not continue with cached formats but remember the joint format. Cached formats contain default parameters, often create an empty fmtp line. However, a joint format might have passed format_get_joint(.) in a res_format_attr_* module (like Opus Codec) and contain the resulting format parameters from a SDP negotiation. ASTERISK-26691 #close Change-Id: I35712d98a793d4c3efdd156cec57deab9014b1dc
This commit is contained in:
@@ -7369,6 +7369,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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user