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,