|
|
|
@ -5423,8 +5423,12 @@ void __codec_store_answer(struct codec_store *dst, struct codec_store *src, stru |
|
|
|
// handle associated supplemental codecs |
|
|
|
if (h->cn_payload_type != -1) { |
|
|
|
pt = g_hash_table_lookup(orig_dst.codecs, GINT_TO_POINTER(h->cn_payload_type)); |
|
|
|
if (!pt && a.allow_asymmetric) |
|
|
|
pt = g_hash_table_lookup(src->codecs, GINT_TO_POINTER(h->cn_payload_type)); |
|
|
|
if (a.allow_asymmetric) { |
|
|
|
struct rtp_payload_type *src_pt |
|
|
|
= g_hash_table_lookup(src->codecs, GINT_TO_POINTER(h->cn_payload_type)); |
|
|
|
if (src_pt && (!pt || !rtp_payload_type_eq_compat(src_pt, pt))) |
|
|
|
pt = src_pt; |
|
|
|
} |
|
|
|
if (!pt) |
|
|
|
ilogs(codec, LOG_DEBUG, "CN payload type %i is missing", h->cn_payload_type); |
|
|
|
else |
|
|
|
@ -5435,8 +5439,12 @@ void __codec_store_answer(struct codec_store *dst, struct codec_store *src, stru |
|
|
|
dtmf_payload_type = h->real_dtmf_payload_type; |
|
|
|
if (dtmf_payload_type != -1) { |
|
|
|
pt = g_hash_table_lookup(orig_dst.codecs, GINT_TO_POINTER(dtmf_payload_type)); |
|
|
|
if (!pt && a.allow_asymmetric) |
|
|
|
pt = g_hash_table_lookup(src->codecs, GINT_TO_POINTER(dtmf_payload_type)); |
|
|
|
if (a.allow_asymmetric) { |
|
|
|
struct rtp_payload_type *src_pt |
|
|
|
= g_hash_table_lookup(src->codecs, GINT_TO_POINTER(dtmf_payload_type)); |
|
|
|
if (src_pt && (!pt || !rtp_payload_type_eq_compat(src_pt, pt))) |
|
|
|
pt = src_pt; |
|
|
|
} |
|
|
|
if (!pt) |
|
|
|
ilogs(codec, LOG_DEBUG, "DTMF payload type %i is missing", dtmf_payload_type); |
|
|
|
else |
|
|
|
|