Drop Osmux call setup if BTS didn't provide a remote CID
We expect osmo-bts to provide us with a remote CID in order to be able to set up MGW to send Osmux frames to it. Related: SYS#5987 Change-Id: Ia90e8e0d18193d64c0fa0788dbd0eb242a359b61
This commit is contained in:
parent
fe5fefa4ac
commit
2627dc07ee
|
@ -303,6 +303,7 @@ struct gsm_lchan {
|
|||
struct {
|
||||
bool use;
|
||||
uint8_t local_cid;
|
||||
bool remote_cid_present;
|
||||
uint8_t remote_cid;
|
||||
} osmux;
|
||||
} abis_ip;
|
||||
|
|
|
@ -2740,6 +2740,7 @@ static void ipac_parse_rtp(struct gsm_lchan *lchan, struct tlv_parsed *tv, const
|
|||
lchan->abis_ip.connect_port = port;
|
||||
}
|
||||
if (TLVP_PRESENT(tv, RSL_IE_OSMO_OSMUX_CID)) {
|
||||
lchan->abis_ip.osmux.remote_cid_present = true;
|
||||
lchan->abis_ip.osmux.remote_cid = tlvp_val8(tv, RSL_IE_OSMO_OSMUX_CID, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -450,6 +450,11 @@ static void connect_mgw_endpoint_to_lchan(struct osmo_fsm_inst *fi,
|
|||
struct in_addr addr;
|
||||
const char *addr_str;
|
||||
|
||||
if (lchan->abis_ip.osmux.use && !lchan->abis_ip.osmux.remote_cid_present) {
|
||||
lchan_rtp_fail("BTS didn't provide any remote Osmux CID for the call");
|
||||
return;
|
||||
}
|
||||
|
||||
mdcx_info = (struct mgcp_conn_peer){
|
||||
.port = to_lchan->abis_ip.bound_port,
|
||||
.ptime = 20,
|
||||
|
|
Loading…
Reference in New Issue