msc: Mobile Terminated Voice Call test
Change-Id: I4fa353623991ac98726217559fea9f83f64715ea
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index a7e14e2..d2ee605 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -29,6 +29,24 @@
CM_TYPE_LCS ('1011'B)
}
+template ML3_Cause_TLV ts_ML3_Cause(BIT7 cause, BIT4 loc := '0001'B, BIT2 std := '11'B) := {
+ elementIdentifier := '08'O,
+ lengthIndicator := 0, /* overwritten */
+ oct3 := {
+ location := loc,
+ spare1_1 := '0'B,
+ codingStandard := std,
+ ext1 := '0'B,
+ recommendation := omit,
+ ext2 := omit
+ },
+ oct4 := {
+ causeValue := cause,
+ ext3 := '1'B
+ },
+ diagnostics := omit
+}
+
/* send template fro Mobile Identity (TMSI) */
template MobileIdentityLV ts_MI_TMSI_LV(OCT4 tmsi) := {
@@ -734,6 +752,74 @@
}
}
+template PDU_ML3_MS_NW ts_ML3_MO_CC_ALERTING(integer tid) := {
+ discriminator := '0011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := '1'B,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ cc := {
+ alerting_MS_NW := {
+ messageType := '000001'B,
+ nsd := '00'B,
+ facility := omit,
+ user_user := omit,
+ ss_VersionIndicator := omit
+ }
+ }
+ }
+}
+
+template PDU_ML3_MS_NW ts_ML3_MT_CC_ALERTING(integer tid) := {
+ discriminator := '0011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := '1'B,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ cc := {
+ alerting_MS_NW := {
+ messageType := '000001'B,
+ nsd := '00'B,
+ facility := omit,
+ user_user := omit,
+ ss_VersionIndicator := omit
+ }
+ }
+ }
+}
+
+template PDU_ML3_MS_NW ts_ML3_MO_CC_CONNECT(integer tid) := {
+ discriminator := '0011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := '1'B,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ cc := {
+ connect_MS_NW := {
+ messageType := '000111'B,
+ nsd := '00'B,
+ facility := omit,
+ connectedSubAddress := omit,
+ user_user := omit,
+ ss_VersionIndicator := omit,
+ streamIdentifier := omit
+ }
+ }
+ }
+}
+
template PDU_ML3_NW_MS tr_ML3_MT_CC_CONNECT(integer tid) := {
discriminator := '0011'B,
tiOrSkip := {
@@ -824,6 +910,31 @@
}
}
+template PDU_ML3_MS_NW ts_ML3_MO_CC_RELEASE(integer tid, BIT1 tid_remote, BIT7 cause) := {
+ discriminator := '0011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := tid_remote,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ cc := {
+ release_MS_NW := {
+ messageType := '101101'B,
+ nsd := '00'B,
+ cause := ts_ML3_Cause(cause),
+ secondCause := omit,
+ facility := omit,
+ user_user := omit,
+ ss_VersionIndicator := omit
+ }
+ }
+ }
+}
+
+
template (value) PDU_ML3_MS_NW ts_ML3_MO_CC_REL_COMPL(integer tid) := {
discriminator := '0011'B,
tiOrSkip := {
@@ -847,6 +958,29 @@
}
}
+template PDU_ML3_NW_MS tr_ML3_MT_CC_REL_COMPL(integer tid) := {
+ discriminator := '0011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := ?,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ cc := {
+ releaseComplete_NW_MS := {
+ messageType := '101010'B,
+ nsd := '00'B,
+ cause := *,
+ facility := *,
+ user_user := *
+ }
+ }
+ }
+}
+
+
template PDU_ML3_NW_MS tr_ML3_MT_MM_AUTH_REQ(template OCT16 rand := ?) := {
discriminator := '0101'B,
diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index bc7c4e6..001b4b8 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -595,6 +595,37 @@
}
}
+/* MT: MSC -> MNCC: SETUP.cnf; Response to SETUP.req */
+template MNCC_PDU tr_MNCC_SETUP_cnf(uint32_t call_id, template MNCC_number connected := *) := {
+ msg_type := MNCC_SETUP_CNF,
+ u := {
+ signal := { /* See 24.008 9.3.5 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := connected,
+ cause := omit,
+ progress := *,
+ useruser := *,
+ facility := *,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := *,
+ imsi := ?,
+ lchan_type := ?,
+ lchan_mode := ?
+ }
+ }
+}
+
/* MT: MSC -> MNCC: SETUP_COMPL.req; request to send CONNECT ACK */
template MNCC_PDU tr_MNCC_SETUP_COMPL_req(template uint32_t call_id) :=
tr_MNCC_SIMPLE(MNCC_SETUP_COMPL_REQ, call_id); /* See 24.008 9.3.6 */
@@ -802,7 +833,7 @@
template MNCC_PDU tr_MNCC_ALERT_ind(template uint32_t call_id, template MNCC_progress prog := omit,
template charstring fac := omit,
template MNCC_useruser uu := omit) := {
- msg_type := MNCC_ALERT_REQ,
+ msg_type := MNCC_ALERT_IND,
u := {
signal := { /* See 24.008 9.3.1 */
callref := call_id,