From 82fd04b13b3dde28aa6d329343bdb9f4284bfaa4 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 28 Feb 2019 08:43:00 +0100 Subject: msc: add codec to all Assignment Complete messages So far we omit a Speech Codec (Chosen) from Assignment Complete messages, which is actually a mandatory parameter. osmo-msc seems to carry on nevertheless, but it actually shouldn't be able to. Always send a Speech Codec (Chosen). Change-Id: Ib35f019383db8ace05a9dc349648e2da7ba58bfa --- library/BSSMAP_Templates.ttcn | 10 ++++++++-- msc/BSC_ConnectionHandler.ttcn | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index b538095c..4df39d42 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -462,6 +462,11 @@ template BSSMAP_IE_SpeechCodecList ts_BSSMAP_IE_CodecList(template BSSMAP_FIELD_ lengthIndicator := 0, /* overwritten */ codecElements := valueof(elem) } +template BSSMAP_IE_SpeechCodec ts_BSSMAP_IE_SpeechCodec(template BSSMAP_FIELD_CodecElements elem) := { + elementIdentifier := '7E'O, + lengthIndicator := 0, /* overwritten */ + codecElements := valueof(elem) +} template PDU_BSSAP ts_BSSMAP_AssignmentReq(template BSSMAP_IE_CircuitIdentityCode cic := omit, @@ -534,7 +539,8 @@ modifies tr_BSSAP_BSSMAP := { template PDU_BSSAP ts_BSSMAP_AssignmentComplete(template BSSMAP_IE_CircuitIdentityCode cic := omit, - template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit) + template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit, + template BSSMAP_IE_SpeechCodec speechCodec := omit) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { @@ -550,7 +556,7 @@ modifies ts_BSSAP_BSSMAP := { lSAIdentifier := omit, talkerPriority := omit, aoIPTransportLayer := aoip, - speechCodec := omit, + speechCodec := speechCodec, codecList := omit, lCLS_BSS_Status := omit } diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 2cd666ff..e6cf2b07 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -532,8 +532,10 @@ runs on BSC_ConnHdlr { valueof(ts_BSSMAP_IE_AoIP_TLA4(f_inet_addr(cpars.mgw_rtp_ip_bss),cpars.mgw_rtp_port_bss)); BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass)) { var BSSMAP_IE_AoIP_TransportLayerAddress tla; + var BSSMAP_IE_SpeechCodec codec; tla := valueof(ts_BSSMAP_IE_AoIP_TLA4(f_inet_addr(cpars.bss_rtp_ip), cpars.bss_rtp_port)); - BSSAP.send(ts_BSSMAP_AssignmentComplete(omit, tla)); + codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})); + BSSAP.send(ts_BSSMAP_AssignmentComplete(omit, tla, codec)); } /* MS -> MSC: ALERTING */ @@ -633,8 +635,10 @@ runs on BSC_ConnHdlr { /* expect AoIP IP/Port to match what we returned in CRCX_ACK above */ [] BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass)) { var BSSMAP_IE_AoIP_TransportLayerAddress tla; + var BSSMAP_IE_SpeechCodec codec; tla := valueof(ts_BSSMAP_IE_AoIP_TLA4(f_inet_addr(cpars.bss_rtp_ip), cpars.bss_rtp_port)); - BSSAP.send(ts_BSSMAP_AssignmentComplete(omit, tla)); + codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})); + BSSAP.send(ts_BSSMAP_AssignmentComplete(omit, tla, codec)); } } -- cgit v1.2.3