aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-06-28 18:22:46 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2017-06-30 11:16:48 +0200
commit9e1e0f46fb82fabb3be11006effa964ed4163ed8 (patch)
tree7032c3c19c9bd05c6582015cf13b37aa8198fc37 /openbsc/src/libmsc
parente2b37af93a084abf57c496938746cc66e65c120f (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.c11
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",