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,