osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/34173 )
Change subject: msc_a_up_call_assignment_complete: check CSD codec
......................................................................
msc_a_up_call_assignment_complete: check CSD codec
Reject any other codec than GSM0808_SCT_CSD in Assignment Complete from
RAN, if OsmoMSC is preparing a CSD call.
Related: OS#4394
Change-Id: I94de84df41bcd050d0e7b4e4fea1c6a6551ef7d3
---
M src/libmsc/msc_a.c
1 file changed, 22 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/73/34173/1
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 0d8a747..087f610 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -1483,6 +1483,15 @@
return;
}
+ /* 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) {
+ 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;
+ }
+
/* Update RAN-side endpoint CI from Assignment result -- unless it is forced by the ran_infra, in which
* case it remains unchanged as passed to the earlier call of call_leg_ensure_ci(). */
if (msc_a->c.ran->force_mgw_codecs_to_ran.count == 0)
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/34173
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I94de84df41bcd050d0e7b4e4fea1c6a6551ef7d3
Gerrit-Change-Number: 34173
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/34174 )
Change subject: gsm48_cc_tx_call_proc_…: verify bcap.transfer
......................................................................
gsm48_cc_tx_call_proc_…: verify bcap.transfer
Fail if MNCC tries to switch the Information Transfer Capability from
CSD to speech, so it is obvious that something is wrong here. I ran into
this while writing a test.
Related: OS#4394
Change-Id: Ibb76d08cad1ac3bc3320391c89766150a2e605c3
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 22 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/74/34174/1
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 4162944..5908db9 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -1047,6 +1047,14 @@
/* bearer capability */
if (proceeding->fields & MNCC_F_BEARER_CAP) {
+ /* MNCC should not switch from e.g. CSD to speech */
+ if (proceeding->bearer_cap.transfer != trans->bearer_cap.transfer) {
+ LOG_TRANS(trans, LOGL_ERROR, "Unexpected Information Transfer Capability %d from MNCC,"
+ " transaction has %d\n",
+ proceeding->bearer_cap.transfer,
+ trans->bearer_cap.transfer);
+ return -EINVAL;
+ }
gsm48_encode_bearer_cap(msg, 0, &proceeding->bearer_cap);
memcpy(&trans->bearer_cap, &proceeding->bearer_cap, sizeof(trans->bearer_cap));
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/34174
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ibb76d08cad1ac3bc3320391c89766150a2e605c3
Gerrit-Change-Number: 34174
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange