diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn
index c0c827f..182868e 100644
--- a/library/MGCP_Templates.ttcn
+++ b/library/MGCP_Templates.ttcn
@@ -137,8 +137,8 @@
 		return cmd;
 	}
 
-	template MgcpCommand tr_DLCX := {
-		line := t_MgcpCmdLine("DLCX", ?, ?),
+	template MgcpCommand tr_DLCX(template MgcpEndpoint ep := ?) := {
+		line := t_MgcpCmdLine("DLCX", ?, ep),
 		params := *,
 		sdp := *
 	}
@@ -153,6 +153,18 @@
 		sdp := *
 	}
 
+	template MgcpResponse ts_DLCX_ACK2(MgcpTransId trans_id) := {
+		line := {
+			code := "250",
+			trans_id := trans_id,
+			string := "OK"
+		},
+		params:= { /* list of ConnectionIDs */ },
+		sdp := omit
+	}
+
+
+
 	template MgcpResponse ts_DLCX_ACK(MgcpTransId trans_id, MgcpConnectionId conn_id, template SDP_Message sdp := omit) := ts_CRCX_ACK(trans_id, conn_id, sdp);
 
 	template MgcpCommand tr_RSIP := {
@@ -244,16 +256,35 @@
 		}
 	}
 
-	function f_MgcpResp_extract_conn_id(MgcpResponse resp) return MgcpConnectionId {
-		var integer i;
-		for (i := 0; i < lengthof(resp.params); i := i + 1) {
-			var MgcpParameter par := resp.params[i];
-			if (par.code == "I") {
-				return str2hex(par.val);
+	function f_mgcp_extract_par(MgcpMessage msg, MgcpInfoCode code) return charstring {
+		var MgcpParameterList pars;
+		if (ischosen(msg.command)) {
+			pars := msg.command.params;
+		} else {
+			pars := msg.response.params;
+		}
+		for (var integer i := 0; i < lengthof(pars); i := i + 1) {
+			var MgcpParameter par := pars[i];
+			if (par.code == code) {
+				return par.val;
 			}
 		}
 		setverdict(fail);
-		return '00000000'H;
+		return "";
+	}
+
+	function f_MgcpResp_extract_conn_id(MgcpResponse resp) return MgcpConnectionId {
+		var MgcpMessage msg := {
+			response := resp
+		}
+		return str2hex(f_mgcp_extract_par(msg, "I"));
+	}
+
+	function f_MgcpCmd_extract_call_id(MgcpCommand cmd) return MgcpCallId {
+		var MgcpMessage msg := {
+			command := cmd
+		}
+		return str2hex(f_mgcp_extract_par(msg, "C"));
 	}
 
 	function f_mgcp_alloc_tid() return MgcpTransId {
@@ -282,4 +313,5 @@
 		sdp := *
 	}
 
+
 }
