hnbgw: Allow announcing a different mgw-local IuUP address after MDCX
This will allow emulating an MGW deciding to change its local IuUP IP address due to received remote address in MGCP MDCX, and announce the changed address back in MGCP MDCX. A test validating this scenario against osmo-hnbgw will be added in a follow-up patch. Related: SYS#6657 Change-Id: Ia724e0363a8bab56f5d31e7f7f7a127af584f935
This commit is contained in:
parent
264679fa7c
commit
0c35a6363b
|
@ -222,6 +222,8 @@ const RanOps MSC_RanOps := {
|
|||
type record MgwResponse {
|
||||
integer resp,
|
||||
HostName mgw_rtp_ip,
|
||||
/* if set, used after first received MDCX: */
|
||||
HostName mgw_rtp_ip_mdcx optional,
|
||||
PortNumber mgw_rtp_port,
|
||||
MgcpConnectionId mgcp_connection_id
|
||||
}
|
||||
|
@ -250,12 +252,14 @@ template (value) MgcpParameters t_MgcpParams := {
|
|||
mgw_conn_ran := {
|
||||
resp := 1,
|
||||
mgw_rtp_ip := "127.1.2.1",
|
||||
mgw_rtp_ip_mdcx := omit,
|
||||
mgw_rtp_port := 10000,
|
||||
mgcp_connection_id := '11111'H
|
||||
},
|
||||
mgw_conn_cn := {
|
||||
resp := 1,
|
||||
mgw_rtp_ip := "127.1.2.2",
|
||||
mgw_rtp_ip_mdcx := omit,
|
||||
mgw_rtp_port := 20000,
|
||||
mgcp_connection_id := '22222'H
|
||||
},
|
||||
|
@ -1271,9 +1275,16 @@ friend function f_rab_ass_resp(inout MgcpParameters pars) runs on ConnHdlr {
|
|||
interleave {
|
||||
/* Expect MDCX with IP/port from RAB Assignment Response */
|
||||
[] MGCP.receive(tr_MDCX(tr_SDP(pars.hnb_rtp_ip, pars.hnb_rtp_port))) -> value mgcp_cmd {
|
||||
var HostName mgw_rtp_ip;
|
||||
log("MDCX1", mgcp_cmd);
|
||||
if (ispresent(pars.mgw_conn_ran.mgw_rtp_ip_mdcx)) {
|
||||
mgw_rtp_ip := pars.mgw_conn_ran.mgw_rtp_ip_mdcx;
|
||||
} else {
|
||||
mgw_rtp_ip := pars.mgw_conn_ran.mgw_rtp_ip;
|
||||
}
|
||||
|
||||
/* Verify SDP of MDCX */
|
||||
var SDP_Message sdp := valueof(ts_SDP(pars.mgw_conn_ran.mgw_rtp_ip, pars.mgw_conn_ran.mgw_rtp_ip, hex2str(pars.mgcp_call_id), "42", pars.mgw_conn_ran.mgw_rtp_port,
|
||||
var SDP_Message sdp := valueof(ts_SDP(mgw_rtp_ip, mgw_rtp_ip, hex2str(pars.mgcp_call_id), "42", pars.mgw_conn_ran.mgw_rtp_port,
|
||||
{ int2str(pars.rtp_payload_type) }, { valueof(ts_SDP_rtpmap(pars.rtp_payload_type, pars.rtp_sdp_format)), valueof(ts_SDP_ptime(20)) } ));
|
||||
var template MgcpResponse mgcp_rsp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, pars.mgw_conn_ran.mgcp_connection_id, sdp);
|
||||
MGCP.send(valueof(mgcp_rsp));
|
||||
|
|
Loading…
Reference in New Issue