bsc: CRCX is answered with (malformed) ACK
Change-Id: I09c1ed467e95be236e0758d6a9c8bbef405c02eb
This commit is contained in:
parent
4886ae6d0c
commit
1fb6e4cc91
|
@ -33,6 +33,7 @@ type component MGCP_Emulation_CT {
|
||||||
port MGCPEM_PROC_PT PROC;
|
port MGCPEM_PROC_PT PROC;
|
||||||
|
|
||||||
var charstring g_mgcp_id;
|
var charstring g_mgcp_id;
|
||||||
|
var integer g_mgcp_conn_id := -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
type function MGCPCreateCallback(MgcpCommand cmd, charstring id)
|
type function MGCPCreateCallback(MgcpCommand cmd, charstring id)
|
||||||
|
@ -49,6 +50,19 @@ type record MGCP_conn_parameters {
|
||||||
uint16_t mgw_udp_port
|
uint16_t mgw_udp_port
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tr_MGCP_RecvFrom_R(template MgcpMessage msg)
|
||||||
|
runs on MGCP_Emulation_CT return template MGCP_RecvFrom {
|
||||||
|
var template MGCP_RecvFrom mrf := {
|
||||||
|
connId := g_mgcp_conn_id,
|
||||||
|
remName := ?,
|
||||||
|
remPort := ?,
|
||||||
|
locName := ?,
|
||||||
|
locPort := ?,
|
||||||
|
msg := msg
|
||||||
|
}
|
||||||
|
return mrf;
|
||||||
|
}
|
||||||
|
|
||||||
function main(MGCPOps ops, MGCP_conn_parameters p, charstring id) runs on MGCP_Emulation_CT {
|
function main(MGCPOps ops, MGCP_conn_parameters p, charstring id) runs on MGCP_Emulation_CT {
|
||||||
var Result res;
|
var Result res;
|
||||||
g_mgcp_id := id;
|
g_mgcp_id := id;
|
||||||
|
@ -60,12 +74,32 @@ function main(MGCPOps ops, MGCP_conn_parameters p, charstring id) runs on MGCP_E
|
||||||
p.mgw_udp_port,
|
p.mgw_udp_port,
|
||||||
p.callagent_ip, p.callagent_udp_port, 0, { udp:={} });
|
p.callagent_ip, p.callagent_udp_port, 0, { udp:={} });
|
||||||
|
|
||||||
|
g_mgcp_conn_id := res.connId;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
var MGCP_ConnHdlr vc_conn;
|
||||||
|
var ExpectCriteria crit;
|
||||||
|
var MGCP_RecvFrom mrf;
|
||||||
|
var MgcpMessage msg;
|
||||||
|
var MgcpCommand cmd;
|
||||||
|
var MgcpResponse resp;
|
||||||
|
|
||||||
alt {
|
alt {
|
||||||
[] CLIENT.receive(MgcpCommand:?) {
|
/* MGCP from client */
|
||||||
|
[] CLIENT.receive(MgcpResponse:?) -> value resp sender vc_conn {
|
||||||
|
/* Pass message through */
|
||||||
|
msg.response := resp;
|
||||||
|
MGCP.send(t_MGCP_Send(g_mgcp_conn_id, msg));
|
||||||
|
}
|
||||||
|
[] MGCP.receive(tr_MGCP_RecvFrom_R(?)) -> value mrf {
|
||||||
|
if (ischosen(mrf.msg.command)) {
|
||||||
|
cmd := mrf.msg.command;
|
||||||
|
vc_conn := ops.create_cb.apply(cmd, id);
|
||||||
|
f_handle_userData(vc_conn, cmd);
|
||||||
|
} else {
|
||||||
|
setverdict(fail, "Received unexpected MGCP response: ", mrf.msg.response);
|
||||||
|
self.stop;
|
||||||
}
|
}
|
||||||
[] MGCP.receive(MGCP_RecvFrom:?) {
|
|
||||||
}
|
}
|
||||||
[] PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) {
|
[] PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) {
|
||||||
f_create_expect(crit, vc_conn);
|
f_create_expect(crit, vc_conn);
|
||||||
|
@ -75,6 +109,11 @@ p.mgw_udp_port,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function f_handle_userData(MGCP_ConnHdlr conn, MgcpCommand cmd)
|
||||||
|
runs on MGCP_Emulation_CT {
|
||||||
|
CLIENT.send(cmd) to conn;
|
||||||
|
}
|
||||||
|
|
||||||
/* "Expect" Handling */
|
/* "Expect" Handling */
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
|
|
Loading…
Reference in New Issue