diff --git a/ipa/MSC_ConnectionHandler.ttcn b/ipa/MSC_ConnectionHandler.ttcn
index 53123fe..e97c6a1 100644
--- a/ipa/MSC_ConnectionHandler.ttcn
+++ b/ipa/MSC_ConnectionHandler.ttcn
@@ -67,26 +67,6 @@
 	MSC_STATE_WAIT_DLCX_ACK
 }
 
-private function f_mgcp_alloc_tid() return MgcpTransId {
-	return int2str(float2int(rnd()*2147483647.0));
-}
-
-private function f_mgcp_alloc_call_id() return MgcpCallId {
-	return int2hex(float2int(rnd()*2147483647.0), 8);
-}
-
-function 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);
-		}
-	}
-	setverdict(fail);
-	return '00000000'H;
-}
-
 /* main function processing various incoming events */
 function main(integer connection_id, integer timeslot) runs on MSC_ConnHdlr {
 	var MgcpResponse mgcp_rsp;
@@ -121,7 +101,7 @@
 		/* receive CRCX ACK: transmit MDCX */
 		[g_state == MSC_STATE_WAIT_CRCX_ACK] BSSAP.receive(tr_CRCX_ACK) -> value mgcp_rsp {
 			/* extract connection ID */
-			g_mgcp_conn_id := extract_conn_id(mgcp_rsp);
+			g_mgcp_conn_id := f_MgcpResp_extract_conn_id(mgcp_rsp);
 			g_state := MSC_STATE_WAIT_MDCX_ACK;
 			var MgcpTransId trans_id := f_mgcp_alloc_tid();
 			BSSAP.send(ts_MDCX(trans_id, g_ep_name, "sendrecv", g_call_id, g_mgcp_conn_id));
