diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-05-06 15:23:57 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-05-14 11:36:33 +0200 |
commit | a93c6e9263955e83e819e41ef3a595b034dbfc1f (patch) | |
tree | 14539950f195b83f17a6c825a6db1e6f95f29bc5 | |
parent | 30907dc9d84b61e95d106f752d1e08491606055f (diff) |
osmux: Provide correct local port during mgcp resp
Also document some possible future improvements for local addr.
Change-Id: I12c8fcdc8b772b9f92a70774406d4662f44bd9a9
-rw-r--r-- | src/libosmo-mgcp/mgcp_network.c | 2 | ||||
-rw-r--r-- | src/libosmo-mgcp/mgcp_protocol.c | 3 | ||||
-rw-r--r-- | src/libosmo-mgcp/mgcp_sdp.c | 7 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index dbed1562d..650d4c069 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -86,7 +86,7 @@ void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn) } } - /* Select from preconfigured IP-Addresses */ + /* Select from preconfigured IP-Addresses. We don't have bind_addr for Osmux (yet?). */ if (endp->cfg->net_ports.bind_addr) { /* Check there is a bind IP for the RTP traffic configured, * if so, use that IP-Address */ diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 609b5fb10..0831abbda 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -300,6 +300,9 @@ static struct msgb *create_response_with_sdp(struct mgcp_endpoint *endp, const char *trans_id, bool add_conn_params) { + /* TODO: we may want to define another local_ip_osmux var to us for + OSMUX connections. Perhaps adding a new internal API to get it based + on conn type */ const char *addr = endp->cfg->local_ip; struct msgb *sdp; int rc; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 6b41f50cd..99e764bbf 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -512,6 +512,7 @@ int mgcp_write_response_sdp(const struct mgcp_endpoint *endp, struct sdp_fmtp_param fmtp_param; int rc; int payload_types[1]; + int local_port; struct sdp_fmtp_param fmtp_params[1]; unsigned int fmtp_params_len = 0; @@ -541,7 +542,11 @@ int mgcp_write_response_sdp(const struct mgcp_endpoint *endp, if (payload_type >= 0) { payload_types[0] = payload_type; - rc = add_audio(sdp, payload_types, 1, conn->end.local_port); + if (mgcp_conn_rtp_is_osmux(conn)) + local_port = endp->cfg->osmux_port; + else + local_port = conn->end.local_port; + rc = add_audio(sdp, payload_types, 1, local_port); if (rc < 0) goto buffer_too_small; |