bsc: Introduce test TC_assignment_aoip_tla_v6 and TC_ho_into_this_bsc_tla_v6
Change-Id: Iba24fae66c80b64bf81bbfd616294af757e5dca3
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index bf96eff..76a56fc 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -279,6 +279,7 @@
var MgcpOsmuxCID osmux_cid;
var SDP_Message sdp;
var integer cid := f_get_free_mgcp_conn();
+ var charstring local_rtp_addr := host_mgw_rtp_v6; /* Use IPv6 by default if no remote addr is provided by client */
if (match(mgcp_cmd.line.ep, t_MGCP_EP_wildcard)) {
if (cid != 0) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "MGCP wildcard EP only works in first CRCX");
@@ -292,9 +293,14 @@
sdp := mgcp_cmd.sdp;
g_media.mgcp_conn[cid].peer.host := sdp.connection.conn_addr.addr;
g_media.mgcp_conn[cid].peer.port_nr := sdp.media_list[0].media_field.ports.port_number;
+ if (sdp.connection.addr_type == "IP6") {
+ local_rtp_addr := host_mgw_rtp_v6;
+ } else {
+ local_rtp_addr := host_mgw_rtp_v4;
+ }
}
var MgcpConnState mgcp_conn := g_media.mgcp_conn[cid];
- sdp := valueof(ts_SDP(mgcp_conn.mgw.host, mgcp_conn.mgw.host, "foo", "21",
+ sdp := valueof(ts_SDP(mgcp_conn.mgw.host, local_rtp_addr, "foo", "21",
mgcp_conn.mgw.port_nr, { int2str(mgcp_conn.rtp_pt) },
{valueof(ts_SDP_rtpmap(mgcp_conn.rtp_pt,
mgcp_conn.mime_type & "/" &
@@ -316,15 +322,21 @@
runs on MSC_ConnHdlr return template MgcpResponse {
var SDP_Message sdp;
var integer cid := f_get_mgcp_conn(f_MgcpCmd_extract_conn_id(mgcp_cmd));
+ var charstring local_rtp_addr;
if (isvalue(mgcp_cmd.sdp)) {
sdp := mgcp_cmd.sdp;
g_media.mgcp_conn[cid].peer.host := sdp.connection.conn_addr.addr;
g_media.mgcp_conn[cid].peer.port_nr := sdp.media_list[0].media_field.ports.port_number;
+ if (sdp.connection.addr_type == "IP6") {
+ local_rtp_addr := host_mgw_rtp_v6;
+ } else {
+ local_rtp_addr := host_mgw_rtp_v4;
+ }
} else {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "MDCX has no [recognizable] SDP");
}
var MgcpConnState mgcp_conn := g_media.mgcp_conn[cid];
- sdp := valueof(ts_SDP(mgcp_conn.peer.host, mgcp_conn.peer.host, "foo", "21",
+ sdp := valueof(ts_SDP(mgcp_conn.peer.host, local_rtp_addr, "foo", "21",
mgcp_conn.peer.port_nr, { int2str(mgcp_conn.rtp_pt) },
{valueof(ts_SDP_rtpmap(mgcp_conn.rtp_pt,
mgcp_conn.mime_type & "/" &
@@ -427,7 +439,9 @@
var TestHdlrParams g_pars;
var charstring host_bts := "127.0.0.2";
- var charstring host_mgw := "127.0.0.3";
+ var charstring host_mgw_mgcp := "127.0.0.3";
+ var charstring host_mgw_rtp_v4 := "127.0.0.5";
+ var charstring host_mgw_rtp_v6 := "::1";
var charstring host_msc := "127.0.0.4";
var boolean g_vty_initialized := false;
@@ -538,6 +552,7 @@
boolean exp_ms_power_params,
boolean aoip,
boolean use_osmux,
+ charstring host_aoip_tla,
TestHdlrParamsMSCPool mscpool
};
@@ -567,6 +582,7 @@
exp_ms_power_params := false,
aoip := true,
use_osmux := false,
+ host_aoip_tla := "1.2.3.4",
mscpool := {
bssap_idx := 0,
rsl_idx := 0,
@@ -1015,7 +1031,7 @@
codecType := FR_AMR;
}
- f_MscConnHdlr_init(g_pars.media_nr, host_bts, host_mgw, codecType);
+ f_MscConnHdlr_init(g_pars.media_nr, host_bts, host_mgw_mgcp, codecType);
/* patch in the LCLS related items, as needed */
f_ass_patch_lcls(ass_tpl, exp_ass_cpl);
@@ -1184,7 +1200,7 @@
cmd := ts_CRCX(get_next_trans_id(), ep, "sendrecv", call_id);
resp := tr_CRCX_ACK;
}
- cmd.sdp := ts_SDP(host_msc, host_mgw, "23", "42",
+ cmd.sdp := ts_SDP(host_msc, host_mgw_rtp_v4, "23", "42",
14000, { int2str(g_media.mgcp_conn[1].rtp_pt) },
{ valueof(ts_SDP_ptime(20)) });
mgcp_transceive_mgw(cmd, resp);