RSL_Emulation: Move templates into RSL_Types
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index 43f0734..2171fc0 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -531,13 +531,46 @@
 	external function dec_RSL_Message(in octetstring stream) return RSL_Message
 		with { extension "prototype(convert) decode(RAW)" };
 
-	template RSL_Message tr_RSL_MsgType(template RSL_MessageDiscriminator m_disc,
+	template RSL_Message tr_RSL_MsgDiscType(template RSL_MessageDiscriminator m_disc,
 				RSL_MessageType m_type) := {
 		msg_disc := m_disc,
 		msg_type := m_type,
 		ies := *
 	}
 
+template RSL_Message tr_RSL_MsgType(template RSL_MessageType msg_type) := {
+	msg_disc := ?,
+	msg_type := msg_type,
+	ies := *
+}
+
+/* Common Channel Management */
+template RSL_Message tr_RSL_MsgTypeC(template RSL_MessageType msg_type) modifies tr_RSL_MsgType := {
+	msg_disc := { RSL_MDISC_CCHAN, ? }
+}
+
+/* RLL */
+template RSL_Message tr_RSL_MsgTypeR(template RSL_MessageType msg_type) modifies tr_RSL_MsgType := {
+	msg_disc := { RSL_MDISC_RLL, true }
+}
+
+/* Dedicated Channel Management */
+template RSL_Message tr_RSL_MsgTypeD(template RSL_MessageType msg_type) modifies tr_RSL_MsgType := {
+	msg_disc := { RSL_MDISC_DCHAN, ? }
+}
+
+/* Dedicated Channel Management */
+template RSL_Message tr_RSL_MsgTypeT(template RSL_MessageType msg_type) modifies tr_RSL_MsgType := {
+	msg_disc := { RSL_MDISC_TRX_MGMT, ? }
+}
+
+
+/* dedicated channel or RLL */
+template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifies tr_RSL_MsgType := {
+	msg_disc := ({RSL_MDISC_DCHAN,?}, {RSL_MDISC_RLL,true})
+}
+
+
 	/* 8.3.1 BSC -> BTS */
 	template RSL_Message ts_RSL_DATA_REQ(RslChannelNr chan_nr, RslLinkId link_id, octetstring l3_info) := {
 		msg_disc := ts_RSL_MsgDisc(RSL_MDISC_RLL, true),