From 2f5704113b949cc26b64452453d8b12e7984a263 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 18 Oct 2016 20:20:51 +0200 Subject: mgcp parsing, set port from mgcp response Change-Id: I90e2c1aa7575d5fa6e0374f5022cbb25fc3f7699 --- openbsc/src/libmsc/msc_ifaces.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openbsc/src/libmsc/msc_ifaces.c b/openbsc/src/libmsc/msc_ifaces.c index d653e078a..71f27a318 100644 --- a/openbsc/src/libmsc/msc_ifaces.c +++ b/openbsc/src/libmsc/msc_ifaces.c @@ -156,6 +156,8 @@ static void mgcp_response_rab_act_cs_crcx(struct mgcp_response *r, void *priv) goto rab_act_cs_error; } + conn->iu.mgcp_rtp_port_cn = r->audio_port; + rtp_ip = mgcpgw_client_remote_addr_n(conn->network->mgcpgw.client); iu_rab_act_cs(uectx, conn->iu.rab_id, rtp_ip, conn->iu.mgcp_rtp_port_ue); @@ -182,7 +184,6 @@ static int conn_iu_rab_act_cs(struct gsm_trans *trans) /* HACK: the addresses should be known from CRCX response * and config. */ conn->iu.mgcp_rtp_port_ue = 4000 + 2 * conn->iu.mgcp_rtp_endpoint; - conn->iu.mgcp_rtp_port_cn = 16000 + 2 * conn->iu.mgcp_rtp_endpoint; /* Establish the RTP stream first as looping back to the originator. * The MDCX will patch through to the counterpart. TODO: play a ring @@ -279,6 +280,7 @@ static void mgcp_response_bridge_mdcx(struct mgcp_response *r, void *priv) trans->bridge.state, subscr_name(trans->subscr)); break; } + break; case BRIDGE_STATE_BRIDGE_PENDING: trans->bridge.state = BRIDGE_STATE_BRIDGE_ESTABLISHED; @@ -296,7 +298,7 @@ int msc_call_bridge(struct gsm_trans *trans1, struct gsm_trans *trans2) { /* First setup as loopback and configure the counterparts' endpoints, * so that when transmission starts the originating addresses are - * already known to be valid. The callback will continue. */ + * already known to be valid. The mgcp callback will continue. */ mgcp_bridge(trans1, trans2, BRIDGE_STATE_LOOPBACK_PENDING, MGCP_CONN_LOOPBACK); mgcp_bridge(trans2, trans1, BRIDGE_STATE_LOOPBACK_PENDING, -- cgit v1.2.3