bsc-nat: Wait for the second MDCX in the BSC_MS conn handler
The bsc-nat sends another MDCX so account for that in the state machine
diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
index ee56401..a385525 100644
--- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn
+++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
@@ -66,6 +66,7 @@
BSC_STATE_WAIT_ASS_REQ,
BSC_STATE_WAIT_CRCX,
BSC_STATE_WAIT_MDCX,
+ BSC_STATE_WAIT_MDCX2,
BSC_STATE_WAIT_CLEAR_CMD,
BSC_STATE_WAIT_DLCX,
BSC_STATE_WAIT_DISC_IND
@@ -116,7 +117,15 @@
/* MDCX -> OK */
[g_state == BSC_STATE_WAIT_MDCX] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
/* FIXME: verify if local part of endpoint name matches CIC */
- /* respond with CRCX_ACK */
+ /* respond with MDCX_ACK */
+ g_state := BSC_STATE_WAIT_MDCX2;
+ BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
+ }
+
+ /* MDCX -> OK */
+ [g_state == BSC_STATE_WAIT_MDCX2] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
+ /* FIXME: verify if local part of endpoint name matches CIC */
+ /* respond with MDCX_ACK */
g_state := BSC_STATE_WAIT_CLEAR_CMD;
BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
}