jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35544?usp=email )
Change subject: ASCI: Correctly confirm talker, so originator can be identified ......................................................................
ASCI: Correctly confirm talker, so originator can be identified
Fix the issue that MSC rejects call termination, because talker can't be identified as originator of the call.
Fixes: OS#6325 Change-Id: I0381e25e15624e6b7577910c95700a355ed3f811 --- M library/BSSMAP_Templates.ttcn M msc/MSC_Tests_ASCI.ttcn M msc/osmo-msc.cfg 3 files changed, 39 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/35544/1
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index a93fb02..a85eb5a 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1368,6 +1368,22 @@ digits := imsi_digits }
+template BSSMAP_IE_MobileIdentity ts_BSSMAP_MobileIdentity_Imsi(hexstring imsi_digits) := { + elementIdentifier := '29'O, + lengthIndicator := 0, /* overwritten */ + typeOfIdentity := '001'B, /* IMSI */ + oddEvenIndicator := f_hex_is_odd_length(imsi_digits), + digits := imsi_digits +} + +template BSSMAP_IE_MobileIdentity tr_BSSMAP_MobileIdentity_Imsi(template hexstring imsi_digits) := { + elementIdentifier := '29'O, + lengthIndicator := ?, /* overwritten */ + typeOfIdentity := '001'B, /* IMSI */ + oddEvenIndicator := ?, + digits := imsi_digits +} + template (value) BSSAMAP_IE_LastUsedEUTRANPLMNId ts_BSSMAP_LastUsedEUTRANPLMNId(OCT3 mcc_mnc) := { elementIdentifier := '95'O, mcc_mnc := mcc_mnc diff --git a/msc/MSC_Tests_ASCI.ttcn b/msc/MSC_Tests_ASCI.ttcn index 76d8d3c..c8bf2da 100644 --- a/msc/MSC_Tests_ASCI.ttcn +++ b/msc/MSC_Tests_ASCI.ttcn @@ -244,9 +244,12 @@ var octetstring gcc_term_req := '3500001900'O; var octetstring bcc_term_req := '3500001a00'O; var octetstring xcc_termination := '340110'O; + /* L3 info carries the mobile identity of the talker requesting the uplink. */ + var octetstring uplink_req_conf := '061103505902082926240000000033'O; var myBSSMAP_Cause cause_success := GSM0808_CAUSE_CALL_CONTROL; var template (value) PDU_BSSAP ts_uplink_rel_ind := ts_BSSMAP_UplinkRelInd(enum2int(cause_success), omit); var template (value) PDU_BSSAP ts_uplink_req := ts_BSSMAP_UplinkReq; + var template (value) PDU_BSSAP ts_uplink_req_conf := ts_BSSMAP_UplinkReqConf(ts_CellId_CI(42), omit, uplink_req_conf); var PDU_BSSAP rx_bssap;
f_init_handler(pars); @@ -316,6 +319,9 @@ log("Got Uplink Request Acknowledge: ", rx_bssap); COORD.send(COORD_UPLINK_REQ_ACK); f_sleep(0.2); + /* The BSC confirms the uplink and provides mobile identity to identify originator. */ + log("Sending Uplink Req Confirm: ", ts_uplink_req_conf); + BSSAP.send(ts_uplink_req_conf); /* The MS requests termination of the call. */ log("Sending GCC Termination Request: ", gcc_term_req); BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, gcc_term_req))); diff --git a/msc/osmo-msc.cfg b/msc/osmo-msc.cfg index d05e400..d71ab6b 100644 --- a/msc/osmo-msc.cfg +++ b/msc/osmo-msc.cfg @@ -29,6 +29,10 @@ logging level ranap debug logging level vlr debug logging level iucs debug + logging level gcc debug + logging level bcc debug + logging level asci debug + ! stats interval 5 !