osmith submitted this change.
msc: CC SETUP MT speech: verify bearer capabilities
Verify that the MSC sends the bearer capability IE from 3GPP TS 24.008 §
D.1.2 for speech in the network to MS direction, instead of allowing
e.g. what osmo-msc master and latest release currently do:
- Filling out radio channel requirement the same way as the MS to
Network direction, which is wrong for the Network to MS direction:
"Bits 6 and 7 are spare bits. The sending side (i.e. the network)
shall set bit 7 to value 0 and bit 6 to value 1." (3GPP TS 24.008
Table 10.5.102)
- Sending a speech list in the Network to MS direction, which seems to
be allowed in theory and MS are supposed to ignore it (end of Table
10.5.103) but causes bugs in some MS in practice. Therefore it is
better to ensure that osmo-msc does not send it (OS#6656).
Implement this in f_mt_call_complete(), which gets used e.g. by
TC_lu_and_mt_call.
Depends: osmo-msc I7046e9244fd9d4301ee2c4df1147a619f753739c
Related: OS#6657, OS#6655, OS#6656
Change-Id: I8fd33cf2f7fb8a1c34851ecf54fccddd2efd0536
---
M library/L3_Templates.ttcn
M msc/BSC_ConnectionHandler.ttcn
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 9551845..8f419f0 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -1382,6 +1382,24 @@
octet7 := omit
}
+/* TS 3GPP 24.008 § D.1.2 */
+template (value) BearerCapability_TLV ts_Bcap_voice_mt := {
+ elementIdentifier := '04'O,
+ lengthIndicator := 1,
+ octet3 := {
+ informationTransferCapability := '000'B,
+ transferMode := '0'B,
+ codingStandard := '0'B,
+ radioChannelRequirement := '01'B, /* spare */
+ extension_octet_3 := '1'B, /* not ext */
+ speech_aux_3a_3b := omit
+ },
+ octet4 := omit,
+ octet5 := omit,
+ octet6 := omit,
+ octet7 := omit
+}
+
/* TS 3GPP 24.008 § 10.5.4.5 */
template (value) BearerCapability_TLV ts_Bcap_csd := {
elementIdentifier := '04'O,
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 6acaa20..a0f4d28 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1131,7 +1131,16 @@
cpars.got_osmux_count := 0;
/* MS <- MSC: Expect CC SETUP */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party)));
+ /* Remove 'or Misc_Helpers.f_osmo_repo_is("latest")' after osmo-msc
+ * 1.15.0 is released with I7046e9244fd9d4301ee2c4df1147a619f753739c */
+ if (cpars.csd or Misc_Helpers.f_osmo_repo_is("latest")) {
+ BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, *)));
+ } else {
+ /* Speech: check bearer capabilities against ts_Bcap_voice_mt
+ * to ensure proper spare bits are sent for radio channel
+ * requirement and that the speech list is omitted (OS#6657) */
+ BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, ts_Bcap_voice_mt)));
+ }
/* MS -> MSC: ALERTING */
BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_ALERTING(cpars.transaction_id)));
To view, visit change 41044. To unsubscribe, or for help writing mail filters, visit settings.