[PATCH] osmo-ttcn3-hacks[master]: MNCC_Types: Add templates for most MNCC messages

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Jan 17 13:00:54 UTC 2018


Review at  https://gerrit.osmocom.org/5846

MNCC_Types: Add templates for most MNCC messages

This adds templates for sending and receiving MNCC messages from
the external MNCC handler point of view, i.e. as required for MSC
testing.  The inverse templates will be needed if we want to implement
emulation of the MSC side of MNCC.

Change-Id: I77665aaf589bdaa9dc0aa6a5daa431fafdc2b383
---
M library/MNCC_Types.ttcn
1 file changed, 1,058 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/5846/1

diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index 956a1ae..2c08e27 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -252,6 +252,9 @@
 	int		pcp
 };
 
+type int MNCC_notify (0..127);
+type int MNCC_keypad (0..127);
+
 type enumerated MNCC_bcap {
 	GSM_MNCC_BCAP_SPEECH	(0),
 	GSM_MNCC_BCAP_UNR_DIG	(1),
@@ -281,9 +284,9 @@
 	int		clir_inv,
 	int		signal optional,
 
-	int		keypad optional,
+	MNCC_keypad	keypad optional,
 	int		more,
-	int		notify (0..127),
+	MNCC_notify	notify,
 	int		emergency optional,
 	charstring	imsi,
 
@@ -353,14 +356,14 @@
 	}
 }
 
-template MNCC_PDU ts_MNCC_SETUP(uint32_t call_id, charstring called, charstring calling) := {
-	msg_type := MNCC_SETUP_REQ,
+template MNCC_PDU ts_MNCC_SIMPLE(MNCC_MsgType msg_type, uint32_t call_id) := {
+	msg_type := msg_type,
 	u := {
 		signal := {
 			callref := call_id,
-			bearer_cap := ts_MNCC_bcap_voice,
-			called := valueof(ts_MNCC_number(called)),
-			calling := valueof(ts_MNCC_number(calling)),
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
 			redirecting := omit,
 			connected := omit,
 			cause := omit,
@@ -376,12 +379,1059 @@
 			more := 0,
 			notify := 0,
 			emergency := omit,
-			imsi := "1234",
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+template MNCC_PDU tr_MNCC_SIMPLE(template MNCC_MsgType msg_type, template uint32_t call_id) := {
+	msg_type := msg_type,
+	u := {
+		signal := {
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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.req from ext. MNCC handler to MSC */
+template MNCC_PDU ts_MNCC_SETUP_req(uint32_t call_id, charstring called, charstring calling, charstring imsi := "") := {
+	msg_type := MNCC_SETUP_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.23.1 */
+			callref := call_id,
+			bearer_cap := ts_MNCC_bcap_voice,		/* mandatory */
+			called := valueof(ts_MNCC_number(called)),	/* optional */
+			calling := valueof(ts_MNCC_number(calling)),	/* optional */
+			redirecting := omit,				/* optional */
+			connected := omit,
+			cause := omit,
+			progress := omit,				/* optional */
+			useruser := omit,				/* optional */
+			facility := omit,				/* optional */
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,					/* optional */
+			keypad := omit,
+			more := 0,
+			notify := 0,
+			emergency := omit,
+			imsi := imsi,
 			lchan_type := 0,
 			lchan_mode := 0
 		}
 	}
 };
 
+/* MT: MSC -> MNCC: Respons to SETUP.req */
+template MNCC_PDU tr_MNCC_SETUP_rsp(template uint32_t call_id := ?, template MNCC_number connected := *,
+				    template charstring imsi := ?) := {
+	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 := *,
+			facility := *,
+			cccap := omit,
+			ssversion := *,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := omit,
+			more := 0,
+			notify := 0,
+			emergency := *,
+			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 := ?,
+				    template MNCC_number calling := *, template charstring imsi :=?) := {
+	msg_type := MNCC_SETUP_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.23.2 */
+			callref := call_id,
+			bearer_cap := ?,				/* mandatory */
+			called := called,				/* mandatory */
+			calling := calling,				/* optional */
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := *,					/* optional */
+			facility := *,					/* optional */
+			cccap := *,					/* optional */
+			ssversion := *,					/* optional */
+			clir_sup := ?,					/* optional */
+			clir_inv := ?,					/* optional */
+			signal := omit,
+			keypad := omit,
+			more := 0,
+			notify := 0,
+			emergency := *,
+			imsi := imsi,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+
+}
+
+/* MO: MSC <- MNCC: SETUP.cnf; Response to SETUP.ind */
+template MNCC_PDU ts_MNCC_SETUP_CNF(uint32_t call_id, template MNCC_number connected := omit) := {
+	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 := ?
+		}
+	}
+}
+
+/* MO: MSC <- MNCC: SETUP_COMPL.req; request to send CONNECT ACK */
+template MNCC_PDU ts_MNCC_SETUP_COMPL_req(uint32_t call_id) :=
+		ts_MNCC_SIMPLE(MNCC_SETUP_COMPL_REQ, call_id); /* See 24.008 9.3.6 */
+
+/* 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 */
+
+/* MT: MSC -> MNCC: REJ.req; reject MT call */
+template MNCC_PDU tr_MNCC_REJ_req(template uint32_t call_id, template MNCC_cause cause := *) := {
+	msg_type := MNCC_REJ_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.19 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := cause,
+			progress := omit,
+			useruser := *,
+			facility := *,
+			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 := ?
+		}
+	}
+}
+
+/* MO: MSC <- MNCC: REJ.ind; reject MO call */
+template MNCC_PDU ts_MNCC_REJ_ind(uint32_t call_id, template MNCC_cause cause := omit) := {
+	msg_type := MNCC_REJ_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.19 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := cause,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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
+		}
+	}
+}
+
+/* MT: MSC <- MNCC: CALL_CONF.req; send CALL CONFIRMED to MS */
+template MNCC_PDU ts_MNCC_CALL_CONF_req(uint32_t call_id, template MNCC_bearer_cap bcap := omit,
+					template MNCC_cause cause := omit,
+					template MNCC_cccap cccap := omit) := {
+	msg_type := MNCC_CALL_CONF_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.2 */
+			callref := call_id,
+			bearer_cap := bcap,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := cause,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			cccap := cccap,
+			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
+		}
+	}
+}
+
+/* MO: MSC <- MNCC: CALL_PROC.req; call establishment initiated in network */
+template MNCC_PDU ts_MNCC_CALL_PROC_req(uint32_t call_id, template MNCC_bearer_cap bcap := omit,
+					template MNCC_progress prog := omit,
+					template charstring fac := omit,
+					template MNCC_cccap cccap := omit) := {
+	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 := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*     MSC <- MNCC: PROGRESS.req; PROGRESS message from ISDN */
+template MNCC_PDU ts_MNCC_PROGRESS_req(uint32_t call_id, MNCC_progress prog,
+					template MNCC_useruser uu := omit) := {
+	msg_type := MNCC_PROGRESS_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.17 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := prog,
+			useruser := uu,
+			facility := omit,
+			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
+		}
+	}
+}
+
+/* MO: MSC <- MNCC: ALERT.req; indicate that user alerting has been initiated */
+template MNCC_PDU ts_MNCC_ALERT_req(uint32_t call_id, template MNCC_progress prog := omit,
+				    template charstring fac := omit,
+				    template MNCC_useruser uu := omit) := {
+	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 := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+
+/* MT: MSC -> MNCC: ALERRT.ind; indicates that mobile user alerting has been initiated */
+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,
+	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 := *,
+			imsi := ?,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+}
+
+/*   : MSC <- MNCC: NOTIFY.req; request to send information pertaining to a call (such as user suspended) */
+template MNCC_PDU ts_MNCC_NOTIFY_req(uint32_t call_id, MNCC_notify notify) := {
+	msg_type := MNCC_NOTIFY_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.16 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := omit,
+			more := 0,
+			notify := notify,
+			emergency := omit,
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*   : MSC -> MNCC: NOTIFY.ind; indication to the mobile user */
+template MNCC_PDU tr_MNCC_NOTIFY_ind(template uint32_t call_id, template MNCC_notify notify) := {
+	msg_type := MNCC_NOTIFY_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.16 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := omit,
+			more := 0,
+			notify := notify,
+			emergency := *,
+			imsi := ?,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+}
+
+/*   : MSC -> MNCC: DISC.ind; mobile user requests disconnect */
+template MNCC_PDU tr_MNCC_DISC_ind(template uint32_t call_id := ?, template MNCC_cause cause := ?,
+				   template MNCC_progress prog := *,
+				   template charstring fac := *,
+				   template MNCC_useruser uu := *) := {
+	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 := *,
+			imsi := ?,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+}
+
+/*   : MSC <- MNCC: DISC.req; indicate disconnect to mobile user */
+template MNCC_PDU ts_MNCC_DISC_req(uint32_t call_id, 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 := omit,
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*   : 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 := ?,
+				  template charstring fac := *, template MNCC_useruser uu := *) := {
+	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 := *,
+			imsi := ?,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+}
+
+/*   : 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,
+				  template charstring fac := omit, template MNCC_useruser uu := omit) := {
+	msg_type := MNCC_REL_REQ,
+	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.cnf; confirm REL_req */
+template MNCC_PDU tr_MNCC_REL_cnf(template uint32_t call_id := ?, template MNCC_cause cause := ?,
+				  template charstring fac := *, template MNCC_useruser uu := *)
+modifies tr_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) := {
+	msg_type := MNCC_FACILITY_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.9 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			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: FACILITY.req; indicate reception of facility */
+template MNCC_PDU tr_MNCC_FACILITY_ind(template uint32_t call_id := ?, template charstring fac := ?) := {
+	msg_type := MNCC_FACILITY_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.9 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			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: START_DTMF.ind; MS has */
+template MNCC_PDU tr_MNCC_START_DTMF_ind(template uint32_t call_id := ?, template MNCC_keypad keypad := ?) := {
+	msg_type := MNCC_START_DTMF_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.24 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := keypad,
+			more := 0,
+			notify := 0,
+			emergency := *,
+			imsi := ?,
+			lchan_type := ?,
+			lchan_mode := ?
+		}
+	}
+}
+
+/*   : MSC <- MNCC: START_DTMF.rsp; Acknowledge start of DTMF */
+template MNCC_PDU ts_MNCC_START_DTMF_rsp(uint32_t call_id, MNCC_keypad keypad) := {
+	msg_type := MNCC_START_DTMF_RSP,
+	u := {
+		signal := {	/* See 24.008 9.3.25 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := keypad,
+			more := 0,
+			notify := 0,
+			emergency := omit,
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*   : MSC <- MNCC: START_DTMF.rsp; Acknowledge start of DTMF */
+template MNCC_PDU ts_MNCC_START_DTMF_rej(uint32_t call_id, MNCC_cause cause) := {
+	msg_type := MNCC_START_DTMF_REJ,
+	u := {
+		signal := {	/* See 24.008 9.3.26 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := cause,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: STOP_DTMF.ind */
+template MNCC_PDU tr_MNCC_STOP_DTMF_ind(template uint32_t call_id := ?) :=
+	tr_MNCC_SIMPLE(MNCC_STOP_DTMF_IND, call_id); /* See 24.008 9.3.29 */
+
+/*   : MSC <- MNCC: STOP_DTMF.rsp; Acknowledge stop of DTMF */
+template MNCC_PDU ts_MNCC_STOP_DTMF_rsp(uint32_t call_id) :=
+	ts_MNCC_SIMPLE(MNCC_STOP_DTMF_RSP, call_id); /* See 24.008 9.3.30 */
+
+/*   : MSC -> MNCC: MODIFY.ind; request to start MO in-call modification */
+template MNCC_PDU tr_MNCC_MODIFY_ind(template uint32_t call_id := ?, template MNCC_bearer_cap bcap := ?) := {
+	msg_type := MNCC_MODIFY_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.14 */
+			callref := call_id,
+			bearer_cap := bcap,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: MODIFY.rsp; tespond to MO in-call modification */
+template MNCC_PDU ts_MNCC_MODIFY_rsp(uint32_t call_id, MNCC_bearer_cap bcap) := {
+	msg_type := MNCC_MODIFY_RSP,
+	u := {
+		signal := {	/* See 24.008 9.3.14 */
+			callref := call_id,
+			bearer_cap := bcap,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: MODIFY.req; request to start MT in-call modification */
+template MNCC_PDU ts_MNCC_MODIFY_req(uint32_t call_id, MNCC_bearer_cap bcap) := {
+	msg_type := MNCC_MODIFY_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.14 */
+			callref := call_id,
+			bearer_cap := bcap,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: MODIFY.cnf; MS has responded to MT in-call modification */
+template MNCC_PDU tr_MNCC_MODIFY_cnf(template uint32_t call_id := ?,
+				     template MNCC_bearer_cap bcap := ?) := {
+	msg_type := MNCC_MODIFY_CNF,
+	u := {
+		signal := {	/* See 24.008 9.3.14 */
+			callref := call_id,
+			bearer_cap := bcap,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: Request transmission of USERINFO to MS */
+template MNCC_PDU ts_MNCC_USERINFO_req(uint32_t call_id, MNCC_useruser uu, integer more) := {
+	msg_type := MNCC_USERINFO_REQ,
+	u := {
+		signal := {	/* See 24.008 9.3.31 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := uu,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := omit,
+			more := more,
+			notify := 0,
+			emergency := omit,
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*   : MSC -> MNCC: Indicate reception of USERINFO from MS */
+template MNCC_PDU tr_MNCC_USERINFO_ind(template uint32_t call_id := ?, template MNCC_useruser uu := ?,
+					integer more) := {
+	msg_type := MNCC_USERINFO_IND,
+	u := {
+		signal := {	/* See 24.008 9.3.31 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := omit,
+			progress := omit,
+			useruser := uu,
+			facility := omit,
+			cccap := omit,
+			ssversion := omit,
+			clir_sup := 0,
+			clir_inv := 0,
+			signal := omit,
+			keypad := omit,
+			more := more,
+			notify := 0,
+			emergency := omit,
+			imsi := "",
+			lchan_type := 0,
+			lchan_mode := 0
+		}
+	}
+}
+
+/*   : MSC -> MNCC: HOLD.ind; MS requests hold of call */
+template MNCC_PDU tr_MNCC_HOLD_ind(template uint32_t call_id := ?) :=
+				tr_MNCC_SIMPLE(MNCC_HOLD_IND, call_id); /* See 24.008 9.3.10 */
+
+/*   : MSC <- MNCC: HOLD.cnf; network confirms hold of call */
+template MNCC_PDU ts_MNCC_HOLD_cnf(uint32_t call_id) :=
+				ts_MNCC_SIMPLE(MNCC_HOLD_CNF, call_id); /* See 24.008 9.3.11 */
+
+/*   : MSC <- MNCC: HOLD.rej; network rejects hold of call */
+template MNCC_PDU ts_MNCC_HOLD_rej(uint32_t call_id, MNCC_cause cause) := {
+	msg_type := MNCC_HOLD_REJ,
+	u := {
+		signal := {	/* See 24.008 9.3.12 */
+			callref := call_id,
+			bearer_cap := omit,
+			called := omit,
+			calling := omit,
+			redirecting := omit,
+			connected := omit,
+			cause := cause,
+			progress := omit,
+			useruser := omit,
+			facility := omit,
+			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: RETRIEVE.ind; MS requests retrieval of held call */
+template MNCC_PDU tr_MNCC_RETRIEVE_ind(template uint32_t call_id := ?) :=
+				tr_MNCC_SIMPLE(MNCC_RETRIEVE_IND, call_id); /* See 24.008 9.3.20 */
+
+/*   : MSC <- MNCC: RETRIEVE.cnf; network confirms retrieve of call */
+template MNCC_PDU ts_MNCC_RETRIEVE_cnf(uint32_t call_id) :=
+				ts_MNCC_SIMPLE(MNCC_RETRIEVE_CNF, call_id); /* See 24.008 9.3.21 */
+
+/*   : MSC <- MNCC: RETRIEVE.rej; network rejects retrieve of call */
+template MNCC_PDU ts_MNCC_RETRIEVE_rej(uint32_t call_id, MNCC_cause cause)
+modifies ts_MNCC_HOLD_rej := {		/* See 24.008 9.3.22 */
+	msg_type := MNCC_RETRIEVE_REJ
+}
+
+
+template MNCC_PDU ts_MNCC_SIMPLE_RTP(MNCC_MsgType msg_type, uint32_t call_id) := {
+	msg_type := msg_type,
+	u := {
+		rtp := {
+			callref := call_id,
+			ip := 0,
+			rtp_port := 0,
+			payload_type := 0,
+			payload_msg_type := 0
+		}
+	}
+}
+
+/* MSC <- MNCC: RTP_CREATE.req; request creation of RTP */
+template MNCC_PDU ts_MNCC_RTP_CREATE(uint32_t call_id) := ts_MNCC_SIMPLE_RTP(MNCC_RTP_CREATE, call_id);
+
+/* MSC -> MNCC: RTP_CREATE.rsp; acknowledge creation of RTP (stating MSC side IP/Port) */
+template MNCC_PDU tr_MNCC_RTP_CREATE(template uint32_t call_id := ?) := {
+	msg_type := MNCC_RTP_CREATE,
+	u := {
+		rtp := {
+			callref := call_id,
+			ip := ?,
+			rtp_port := ?,
+			payload_type := ?,
+			payload_msg_type := ?
+		}
+	}
+}
+
+/* MSC <- MNCC: RTP_CONNECT.req; request connect of RTP */
+template MNCC_PDU ts_MNCC_RTP_CONNECT(uint32_t call_id, uint32_t ip, uint32_t rtp_port, uint32_t pt) := {
+	msg_type := MNCC_RTP_CONNECT,
+	u := {
+		rtp := {
+			callref := call_id,
+			ip := ip,
+			rtp_port := rtp_port,
+			payload_type := pt,
+			payload_msg_type := 0
+		}
+	}
+}
+
+/* MSC <- MNCC: RTP_FREE.req; request connect of RTP */
+template MNCC_PDU ts_MNCC_RTP_FREE(uint32_t call_id) := ts_MNCC_SIMPLE_RTP(MNCC_RTP_FREE, call_id);
 
 } with { encode "RAW" ; variant "FIELDORDER(msb)" }

-- 
To view, visit https://gerrit.osmocom.org/5846
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I77665aaf589bdaa9dc0aa6a5daa431fafdc2b383
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list