ipa: Enable configuration on whether MGCP should use old or new IPA stream ID
diff --git a/library/IPA_Emulation.ttcn b/library/IPA_Emulation.ttcn
index 146c421..e9894d1 100644
--- a/library/IPA_Emulation.ttcn
+++ b/library/IPA_Emulation.ttcn
@@ -9,10 +9,10 @@
 
 import from MGCP_Types all;
 
-/*
 modulepar {
+	/* Use Osmocom extended IPA mux header */
+	boolean mp_ipa_mgcp_uses_osmo_ext := true;
 }
-*/
 
 type enumerated IpaMode {
 	IPA_MODE_CLIENT,
@@ -203,6 +203,14 @@
 	}
 }
 
+private function f_mgcp_to_ud(octetstring payload) runs on IPA_Emulation_CT return ASP_IPA_Unitdata {
+	if (mp_ipa_mgcp_uses_osmo_ext) {
+		return valueof(t_ASP_IPA_UD(IPAC_PROTO_MGCP_OLD, payload));
+	} else {
+		return valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_MGCP));
+	}
+}
+
 private function ScanEvents() runs on IPA_Emulation_CT {
 	var IPA_RecvFrom ipa_rx;
 	var ASP_IPA_Unitdata ipa_ud;
@@ -265,13 +273,13 @@
 
 		/* Received MGCP -> down into IPA */
 		[] IPA_MGCP_PORT.receive(MgcpCommand:?) -> value mgcp_cmd {
-			payload := char2oct(enc_MgcpResponse(mgcp_rsp));
-			ipa_ud := valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_MGCP));
+			payload := char2oct(enc_MgcpCommand(mgcp_cmd));
+			ipa_ud := f_mgcp_to_ud(payload);
 			IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud));
 		}
 		[] IPA_MGCP_PORT.receive(MgcpResponse:?) -> value mgcp_rsp {
 			payload := char2oct(enc_MgcpResponse(mgcp_rsp));
-			ipa_ud := valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_MGCP));
+			ipa_ud := f_mgcp_to_ud(payload);
 			IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud));
 		}