ipa: Enable configuration on whether MGCP should use old or new IPA stream ID

This commit is contained in:
Harald Welte 2017-11-25 02:31:20 +01:00
parent 1dd8f3713b
commit 92632e1dce
2 changed files with 15 additions and 5 deletions

View File

@ -14,6 +14,8 @@ FileMask := LOG_ALL | TTCN_MATCHING;
#mp_nat_port := 5000;
#mp_nat_ip := "127.0.0.1";
#mp_ipa_mgcp_uses_osmo_ext := true;
#mp_mgcp_uses_udp := true;
#mp_callagent_ip := "127.0.0.1";
#mp_callagent_udp_port := 2727;

View File

@ -9,10 +9,10 @@ import from MTP3asp_PortType all;
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_user(octetstring msg) runs on IPA_Emulation_CT {
}
}
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 @@ private function ScanEvents() runs on IPA_Emulation_CT {
/* 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));
}