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
This commit is contained in:
Daniel Willmann 2017-11-30 13:14:37 +01:00
parent e98bb2e153
commit 04541d715e
1 changed files with 10 additions and 1 deletions

View File

@ -66,6 +66,7 @@ type enumerated BSC_State {
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 @@ runs on BSC_MS_ConnHdlr {
/* 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));
}