mgw: Introduce test TC_crcx_osmo_ign

Related: SYS#5063
Change-Id: I79415c385e89fe859854430bb20940f078fccea0
This commit is contained in:
Pau Espin 2020-09-21 10:54:42 +02:00 committed by laforge
parent befa21c5c9
commit befd3aaca4
3 changed files with 38 additions and 2 deletions

View File

@ -55,6 +55,12 @@ module MGCP_Templates {
val := f_mgcp_osmux_cid_encode(osmux_cid)
};
/* Osmocom extension: X-Osmux: {*,%u} */
template MgcpParameter t_MgcpParOsmoIGN(template charstring val) := {
code := "X-OSMO-IGN",
val := val
};
/* osmo-bsc_mgcp implements L/C/M/X only, osmo-mgw adds 'I' */
/* SDP: osmo-bsc_mgcp implements Tx of v,o,s,c,t,m,a */

View File

@ -30,8 +30,8 @@ module MGCP_Types {
type charstring MgcpInfoCode ("B", "C", "I", "N", "X", "L", "M", "R",
"S", "D", "O", "P", "E", "Z", "Q", "T",
"RC", "LC", "A", "ES", "RM", "RD", "PL",
"MD", "X-OSMO-CP", "X-OSMUX") with {
variant "TEXT_CODING(,convert=upper_case,'([BCINXLMRSDOPEZQTA])|(RC)|(LC)|(ES)|(RM)|(RD)|(PL)|(MD)|(X-OSMO-CP)|(X-OSMUX)',case_insensitive)"
"MD", "X-OSMO-CP", "X-OSMO-IGN", "X-OSMUX") with {
variant "TEXT_CODING(,convert=upper_case,'([BCINXLMRSDOPEZQTA])|(RC)|(LC)|(ES)|(RM)|(RD)|(PL)|(MD)|(X-OSMO-CP)|(X-OSMO-IGN)|(X-OSMUX)',case_insensitive)"
};
/* 3.2.2.6 */

View File

@ -732,6 +732,35 @@ module MGCP_Test {
setverdict(pass);
}
/* Test CRCX with X-Osmo-IGN, using same message as SYS#5063 to make sure it doesn't cause a crash. */
testcase TC_crcx_osmo_ign() runs on dummy_CT {
var template MgcpCommand cmd;
var MgcpResponse resp;
var MgcpEndpoint ep := "7@" & c_mgw_domain;
var MgcpCallId call_id := '3'H;
f_init(ep);
/* CRCX 1 7@mgw MGCP 1.0
C: 3
L: p:20, a:GSM-EFR, nt:IN
M: recvonly
X-Osmo-IGN: C
*/
cmd := ts_CRCX(get_next_trans_id(), ep, "netwtest", call_id);
cmd.params := {ts_MgcpParCallId(call_id),
t_MgcpParLocConnOpt("p:20, a:GSM-EFR, nt:IN"),
t_MgcpParConnMode("recvonly"),
t_MgcpParOsmoIGN("C")};
resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK);
extract_conn_id(resp);
/* clean-up */
f_dlcx_ok(ep, call_id);
setverdict(pass);
}
/* test CRCX with early bi-directional mode, expect 527 as
* bi-diretional media can only be established once both local and
* remote side are specified, see MGCP RFC */
@ -2360,6 +2389,7 @@ module MGCP_Test {
execute(TC_crcx_no_lco());
execute(TC_crcx_noprefix());
execute(TC_crcx_unsupp_mode());
execute(TC_crcx_osmo_ign());
execute(TC_crcx_early_bidir_mode());
execute(TC_crcx_unsupp_param());
execute(TC_crcx_missing_callid());