summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-03-25 16:36:40 +0200
committerHarald Welte <laforge@gnumonks.org>2018-03-26 23:07:24 +0200
commit90938393297fe1463232496a921570b542bafb2d (patch)
treec94afaeec96c8a4779b63e498c1d05d92a5d085a
parent055660098c148532ccaf499e24f227d5e8a866fb (diff)
MNCC_Types: More types for MNCC server (MSC) side emulation
-rw-r--r--library/MNCC_Types.ttcn240
1 files changed, 239 insertions, 1 deletions
diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index 1818ff3..39f9dce 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -274,7 +274,7 @@ type record MNCC_cause {
variant (coding) "FIELDLENGTH(32)";
}
-template MNCC_cause ts_MNCC_cause(int val,
+template (value) MNCC_cause ts_MNCC_cause(int val,
GSM48_cause_loc loc := GSM48_CAUSE_LOC_PUN_S_LU,
GSM48_cause_coding coding := GSM48_CAUSE_CS_GSM,
octetstring diag := ''O) := {
@@ -544,6 +544,38 @@ template MNCC_PDU ts_MNCC_SETUP_rsp(uint32_t call_id, charstring imsi := "",
}
}
};
+template MNCC_PDU tr_MNCC_SETUP_rsp(template uint32_t call_id,
+ template charstring imsi := ?,
+ template MNCC_number connected := *) := {
+ msg_type := MNCC_SETUP_RSP,
+ 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 := omit,
+ useruser := *, /* optional */
+ facility := *, /* optional */
+ cccap := omit,
+ ssversion := *, /* optional */
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := imsi,
+ lchan_type := ?,
+ lchan_mode := ?
+ }
+ }
+};
+
/* MO: MSC -> MNCC: SETUP.ind from MSC to ext. MNCC handler */
template MNCC_PDU tr_MNCC_SETUP_ind(template uint32_t call_id := ?, template MNCC_number called := ?,
@@ -678,6 +710,8 @@ template MNCC_PDU tr_MNCC_SETUP_COMPL_req(template uint32_t call_id) :=
/* MT: MSC -> MNCC: SETUP_COMPL.ind; receipt of CONNECT ACK */
template MNCC_PDU tr_MNCC_SETUP_COMPL_ind(template uint32_t call_id := ?) :=
tr_MNCC_SIMPLE(MNCC_SETUP_COMPL_IND, call_id); /* See 24.008 9.3.6 */
+template (value) MNCC_PDU ts_MNCC_SETUP_COMPL_ind(uint32_t call_id) :=
+ ts_MNCC_SIMPLE(MNCC_SETUP_COMPL_IND, call_id); /* See 24.008 9.3.6 */
/* MT: MSC -> MNCC: REJ.req; reject MT call */
template MNCC_PDU tr_MNCC_REJ_req(template uint32_t call_id, template MNCC_cause cause := *) := {
@@ -807,6 +841,40 @@ template MNCC_PDU ts_MNCC_CALL_PROC_req(uint32_t call_id, template MNCC_bearer_c
}
}
}
+template MNCC_PDU tr_MNCC_CALL_PROC_req(template uint32_t call_id,
+ template MNCC_bearer_cap bcap := *,
+ template MNCC_progress prog := *,
+ template charstring fac := *,
+ template MNCC_cccap cccap := *) := {
+ msg_type := MNCC_CALL_PROC_REQ,
+ u := {
+ signal := { /* See 24.008 9.3.2 */
+ callref := call_id,
+ bearer_cap := bcap,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := omit,
+ cause := omit,
+ progress := prog,
+ useruser := omit,
+ facility := fac,
+ cccap := cccap,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := ?,
+ lchan_type := ?,
+ lchan_mode := ?
+ }
+ }
+}
+
/* MSC <- MNCC: PROGRESS.req; PROGRESS message from ISDN */
template MNCC_PDU ts_MNCC_PROGRESS_req(uint32_t call_id, MNCC_progress prog,
@@ -872,6 +940,39 @@ template MNCC_PDU ts_MNCC_ALERT_req(uint32_t call_id, template MNCC_progress pro
}
}
}
+template MNCC_PDU tr_MNCC_ALERT_req(template uint32_t call_id,
+ template MNCC_progress prog := *,
+ template charstring fac := *,
+ template MNCC_useruser uu := *) := {
+ msg_type := MNCC_ALERT_REQ,
+ u := {
+ signal := { /* See 24.008 9.3.1 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := omit,
+ cause := omit,
+ progress := prog,
+ useruser := uu,
+ facility := fac,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := ?,
+ lchan_type := ?,
+ lchan_mode := ?
+ }
+ }
+}
+
/* MT: MSC -> MNCC: ALERRT.ind; indicates that mobile user alerting has been initiated */
@@ -1002,6 +1103,38 @@ template MNCC_PDU tr_MNCC_DISC_ind(template uint32_t call_id := ?, template MNCC
}
}
}
+template (value) MNCC_PDU ts_MNCC_DISC_ind(uint32_t call_id, template (value) MNCC_cause cause,
+ template (omit) MNCC_progress prog := omit,
+ template (omit) charstring fac := omit,
+ template (omit) MNCC_useruser uu := omit) := {
+ msg_type := MNCC_DISC_IND,
+ u := {
+ signal := { /* See 24.008 9.3.7 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := omit,
+ cause := cause,
+ progress := prog,
+ useruser := uu,
+ facility := fac,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := "",
+ lchan_type := 0,
+ lchan_mode := 0
+ }
+ }
+}
/* : MSC <- MNCC: DISC.req; indicate disconnect to mobile user */
template MNCC_PDU ts_MNCC_DISC_req(uint32_t call_id, MNCC_cause cause,
@@ -1036,6 +1169,40 @@ template MNCC_PDU ts_MNCC_DISC_req(uint32_t call_id, MNCC_cause cause,
}
}
}
+template MNCC_PDU tr_MNCC_DISC_req(template uint32_t call_id,
+ template MNCC_cause cause := *,
+ template MNCC_progress prog := omit,
+ template charstring fac := omit,
+ template MNCC_useruser uu := omit) := {
+ msg_type := MNCC_DISC_REQ,
+ u := {
+ signal := { /* See 24.008 9.3.7 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := omit,
+ cause := cause,
+ progress := prog,
+ useruser := uu,
+ facility := fac,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := *,
+ imsi := ?,
+ lchan_type := ?,
+ lchan_mode := ?
+ }
+ }
+}
+
/* : MSC -> MNCC: REL.ind; mobile user informs network that user wants to release call + MM */
template MNCC_PDU tr_MNCC_REL_ind(template uint32_t call_id := ?, template MNCC_cause cause := ?,
@@ -1068,6 +1235,38 @@ template MNCC_PDU tr_MNCC_REL_ind(template uint32_t call_id := ?, template MNCC_
}
}
}
+template (value) MNCC_PDU ts_MNCC_REL_ind(uint32_t call_id,
+ template (value) MNCC_cause cause,
+ template (omit) charstring fac := omit,
+ template (omit) MNCC_useruser uu := omit) := {
+ msg_type := MNCC_REL_IND,
+ u := {
+ signal := { /* See 24.008 9.3.18 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := omit,
+ calling := omit,
+ redirecting := omit,
+ connected := omit,
+ cause := cause,
+ progress := omit,
+ useruser := uu,
+ facility := fac,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := "",
+ lchan_type := 0,
+ lchan_mode := 0
+ }
+ }
+}
/* : MSC <- MNCC: REL.req; indicate to mobile user tat network intents to release MM */
template MNCC_PDU ts_MNCC_REL_req(uint32_t call_id, MNCC_cause cause,
@@ -1100,6 +1299,37 @@ template MNCC_PDU ts_MNCC_REL_req(uint32_t call_id, MNCC_cause cause,
}
}
}
+template MNCC_PDU tr_MNCC_REL_req(template uint32_t call_id, template MNCC_cause cause := *,
+ template charstring fac := *, template MNCC_useruser uu := *) := {
+ msg_type := MNCC_REL_REQ,
+ u := {
+ signal := { /* See 24.008 9.3.18 */
+ callref := call_id,
+ bearer_cap := omit,
+ called := *,
+ calling := *,
+ redirecting := *,
+ connected := *,
+ cause := cause,
+ progress := omit,
+ useruser := uu,
+ facility := fac,
+ cccap := omit,
+ ssversion := omit,
+ clir_sup := 0,
+ clir_inv := 0,
+ signal := omit,
+ keypad := omit,
+ more := 0,
+ notify := 0,
+ emergency := omit,
+ imsi := ?,
+ lchan_type := 0,
+ lchan_mode := 0
+ }
+ }
+}
+
/* : MSC -> MNCC: REL.cnf; confirm REL_req */
template MNCC_PDU tr_MNCC_REL_cnf(template uint32_t call_id := ?, template MNCC_cause cause := ?,
@@ -1107,6 +1337,14 @@ template MNCC_PDU tr_MNCC_REL_cnf(template uint32_t call_id := ?, template MNCC_
modifies tr_MNCC_REL_ind := {
msg_type := MNCC_REL_CNF
};
+template (value) MNCC_PDU ts_MNCC_REL_cnf(uint32_t call_id,
+ template (value) MNCC_cause cause,
+ template (omit) charstring fac := omit,
+ template (omit) MNCC_useruser uu := omit)
+modifies ts_MNCC_REL_ind := {
+ msg_type := MNCC_REL_CNF
+};
+
/* : MSC <- MNCC: FACILITY.req; request transmission of facility */
template MNCC_PDU ts_MNCC_FACILITY_req(uint32_t call_id, charstring fac) := {