pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/29435 )
Change subject: Drop Osmux call setup if BTS didn't provide a remote CID ......................................................................
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 --- M include/osmocom/bsc/lchan.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/lchan_rtp_fsm.c 3 files changed, 7 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/29435/1
diff --git a/include/osmocom/bsc/lchan.h b/include/osmocom/bsc/lchan.h index 2de1227..4fcfa20 100644 --- a/include/osmocom/bsc/lchan.h +++ b/include/osmocom/bsc/lchan.h @@ -303,6 +303,7 @@ struct { bool use; uint8_t local_cid; + bool remote_cid_present; uint8_t remote_cid; } osmux; } abis_ip; diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 1c60405..3b83b0e 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -2740,6 +2740,7 @@ 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); }
diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c index 916823a..b788e99 100644 --- a/src/osmo-bsc/lchan_rtp_fsm.c +++ b/src/osmo-bsc/lchan_rtp_fsm.c @@ -450,6 +450,11 @@ 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,