aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-06-12 12:26:31 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-06-18 17:50:09 +0200
commit39f3b1109d4b3463b44ac7b3401a03a16166edba (patch)
tree1da4bbe184d4c1369f807c0687f51b0b400234f2 /openbsc/src/libmsc
parent778e14a51e28294e2e4f4c869c01ec177713c263 (diff)
mgcp: make bts base port configurable
Currently the rtp base port of the BTS is hardcoded (4000) and not configurable. This patch adds VTY configuration options to make it adjustable.
Diffstat (limited to 'openbsc/src/libmsc')
-rw-r--r--openbsc/src/libmsc/msc_ifaces.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/openbsc/src/libmsc/msc_ifaces.c b/openbsc/src/libmsc/msc_ifaces.c
index 3dbe7c3e9..e54f1e969 100644
--- a/openbsc/src/libmsc/msc_ifaces.c
+++ b/openbsc/src/libmsc/msc_ifaces.c
@@ -195,6 +195,7 @@ static int conn_iu_rab_act_cs(struct gsm_trans *trans)
struct mgcpgw_client *mgcp = conn->network->mgcpgw.client;
struct msgb *msg;
struct msgb *msg_dlcx;
+ uint16_t bts_base;
/* HACK. where to scope the RAB Id? At the conn / subscriber /
* ue_conn_ctx? */
@@ -203,9 +204,14 @@ static int conn_iu_rab_act_cs(struct gsm_trans *trans)
conn->iu.mgcp_rtp_endpoint =
mgcpgw_client_next_endpoint(conn->network->mgcpgw.client);
- /* HACK: the addresses should be known from CRCX response
- * and config. */
- conn->iu.mgcp_rtp_port_ue = 4000 + 2 * conn->iu.mgcp_rtp_endpoint;
+
+ /* This will calculate the port we assign to the BTS via AoIP
+ * assignment command (or rab-assignment on 3G) The BTS will send
+ * its RTP traffic to that port on the MGCPGW side. The MGCPGW only
+ * gets the endpoint ID via the CRCX. It will do the same calculation
+ * on his side too to get knowledge of the rtp port. */
+ bts_base = mgcp->actual.bts_base;
+ conn->iu.mgcp_rtp_port_ue = bts_base + 2 * conn->iu.mgcp_rtp_endpoint;
/* Since we know now the endpoint number, we enforce a DLCX on tha
* endpoint in order to ensure that this endpoint is not occupied