diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-11-07 17:19:25 +0100 |
---|---|---|
committer | the 34c3 gsm team <34c3-gsm@congress> | 2017-12-27 18:46:26 +0100 |
commit | 387edd67ac28782d3241905fc00a0a33d2adda89 (patch) | |
tree | 452b0c27f106fd8c72a98c869c1cb95172759229 /src/libmsc/a_iface.c | |
parent | 629c479eddfc8995117eaee56ef330ae705bba5f (diff) |
mgcp: use osmo-mgw to switch rtp streams
in the current implementation we still use osmo-bsc_mgcp, which
has many problems and is also obsoleted by osmo-mgw.
integrate osmo-mgw and re-implement the current switching using
an osmo fsm.
Depends: osmo-mgw Iab6a6038e7610c62f34e642cd49c93d11151252c
Depends: osmo-iuh I3c1a0455c5f25cae41ee19229d6daf299e023062
Closes: OS#2605
Change-Id: Ieea9630358b3963261fa1993cf1f3b563ff23538
Diffstat (limited to 'src/libmsc/a_iface.c')
-rw-r--r-- | src/libmsc/a_iface.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 9dacca561..74ad51ddf 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -396,8 +396,21 @@ int a_iface_tx_assignment(const struct gsm_trans *trans) /* Package RTP-Address data */ memset(&rtp_addr_in, 0, sizeof(rtp_addr_in)); rtp_addr_in.sin_family = AF_INET; - rtp_addr_in.sin_port = osmo_htons(conn->rtp.port_subscr); - rtp_addr_in.sin_addr.s_addr = osmo_htonl(mgcp_client_remote_addr_n(gsm_network->mgw.client)); + rtp_addr_in.sin_port = osmo_htons(conn->rtp.local_port_ran); + rtp_addr_in.sin_addr.s_addr = inet_addr(conn->rtp.local_addr_ran); + + if (rtp_addr_in.sin_addr.s_addr == INADDR_NONE) { + LOGP(DMSC, LOGL_ERROR, + "(subscriber:%s) Invalid RTP-Address -- assignment not sent!\n", + vlr_subscr_name(trans->vsub)); + return -EINVAL; + } + if (rtp_addr_in.sin_port == 0) { + LOGP(DMSC, LOGL_ERROR, + "(subscriber:%s) Invalid RTP-Port -- assignment not sent!\n", + vlr_subscr_name(trans->vsub)); + return -EINVAL; + } memset(&rtp_addr, 0, sizeof(rtp_addr)); memcpy(&rtp_addr, &rtp_addr_in, sizeof(rtp_addr_in)); |