aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2024-02-06 16:58:28 +0700
committerfixeria <vyanitskiy@sysmocom.de>2024-03-01 07:11:47 +0000
commitb03001199a99a67f72846b6eba169eb4064a932c (patch)
tree35f86249ef13228baf7b5110bd651f1da8c7954a
parentf09832a395946ed524f2668195430de6f2804ba8 (diff)
msc_a_up_call_assignment_complete(): handle all CSD modesHEADmaster
-rw-r--r--src/libmsc/msc_a.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 38f05a6d4..4fb30c46c 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -1465,12 +1465,18 @@ static void msc_a_up_call_assignment_complete(struct msc_a *msc_a, const struct
const struct codec_mapping *codec_assigned;
/* Check for unexpected codec with CSD */
- if (cc_trans->bearer_cap.transfer == GSM48_BCAP_ITCAP_UNR_DIG_INF &&
- codec_if_known->type != GSM0808_SCT_CSD) {
+ switch (cc_trans->bearer_cap.transfer) {
+ case GSM48_BCAP_ITCAP_FAX_G3:
+ case GSM48_BCAP_ITCAP_3k1_AUDIO:
+ case GSM48_BCAP_ITCAP_UNR_DIG_INF:
+ if (codec_if_known->type == GSM0808_SCT_CSD)
+ break; /* we're good */
LOG_TRANS(cc_trans, LOGL_ERROR, "Unexpected codec in Assignment Complete for CSD: %s\n",
gsm0808_speech_codec_type_name(codec_if_known->type));
call_leg_release(msc_a->cc.call_leg);
return;
+ default:
+ break;
}
/* For 2G: