diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-06-28 18:22:46 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2017-06-30 11:16:48 +0200 |
commit | 9e1e0f46fb82fabb3be11006effa964ed4163ed8 (patch) | |
tree | 7032c3c19c9bd05c6582015cf13b37aa8198fc37 /openbsc/src/libmsc | |
parent | e2b37af93a084abf57c496938746cc66e65c120f (diff) |
mgcp: Fix missing call id in DLCX
The call id field in the DLCX message is missing. Use the endpoint
id as call id in all CRCX and DLCX messages.
Diffstat (limited to 'openbsc/src/libmsc')
-rw-r--r-- | openbsc/src/libmsc/msc_ifaces.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/openbsc/src/libmsc/msc_ifaces.c b/openbsc/src/libmsc/msc_ifaces.c index cdc724b5b..8eb688224 100644 --- a/openbsc/src/libmsc/msc_ifaces.c +++ b/openbsc/src/libmsc/msc_ifaces.c @@ -219,7 +219,9 @@ static int conn_iu_rab_act_cs(struct gsm_trans *trans) * endpoint in order to ensure that this endpoint is not occupied * with some old connection that was not properly cleared during * some crash or restart event */ - msg_dlcx = mgcp_msg_dlcx(mgcp, conn->iu.mgcp_rtp_endpoint); + msg_dlcx = + mgcp_msg_dlcx(mgcp, conn->iu.mgcp_rtp_endpoint, + conn->iu.mgcp_rtp_endpoint); if (mgcpgw_client_tx(mgcp, msg_dlcx, NULL, NULL)) LOGP(DMGCP, LOGL_ERROR, "Failed to send DLCX message for %s\n", @@ -228,8 +230,8 @@ static int conn_iu_rab_act_cs(struct gsm_trans *trans) /* Establish the RTP stream first as looping back to the originator. * The MDCX will patch through to the counterpart. TODO: play a ring * tone instead. */ - msg = mgcp_msg_crcx(mgcp, conn->iu.mgcp_rtp_endpoint, trans->callref, - MGCP_CONN_LOOPBACK); + msg = mgcp_msg_crcx(mgcp, conn->iu.mgcp_rtp_endpoint, + conn->iu.mgcp_rtp_endpoint, MGCP_CONN_LOOPBACK); return mgcpgw_client_tx(mgcp, msg, mgcp_response_rab_act_cs_crcx, trans); } #endif @@ -355,7 +357,8 @@ void msc_call_release(struct gsm_trans *trans) struct mgcpgw_client *mgcp = conn->network->mgcpgw.client; /* Send DLCX */ - msg = mgcp_msg_dlcx(mgcp, conn->iu.mgcp_rtp_endpoint); + msg = mgcp_msg_dlcx(mgcp, conn->iu.mgcp_rtp_endpoint, + conn->iu.mgcp_rtp_endpoint); if (mgcpgw_client_tx(mgcp, msg, NULL, NULL)) LOGP(DMGCP, LOGL_ERROR, "Failed to send DLCX message for %s\n", |