From 5962f23181bddd7f9f23cac496483a4ec3fc1a0c Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 1 Nov 2018 11:55:15 +0100 Subject: LCLS: move MGCP MDCX into separate function Move code using MDCX via MGCP into separate function to make adding alternative MDCX variants easier. Change-Id: I5fafa3b12a39c83bdf64e16e192dd2454d069cf4 Related: OS#3659 --- src/osmo-bsc/osmo_bsc_lcls.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/osmo-bsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c index b8bf60103..e64297611 100644 --- a/src/osmo-bsc/osmo_bsc_lcls.c +++ b/src/osmo-bsc/osmo_bsc_lcls.c @@ -227,6 +227,15 @@ void lcls_apply_config(struct gsm_subscriber_connection *conn) osmo_fsm_inst_dispatch(conn->lcls.fi, LCLS_EV_APPLY_CFG_CSC, NULL); } +/* Close the loop for LCLS using MGCP */ +static inline void lcls_mdcx(const struct gsm_subscriber_connection *conn, struct mgcp_conn_peer *mdcx_info) +{ + mgcp_pick_codec(mdcx_info, conn->lchan, false); + + mgw_endpoint_ci_request(conn->user_plane.mgw_endpoint_ci_msc, MGCP_VERB_MDCX, mdcx_info, + NULL, 0, 0, NULL); +} + static void lcls_break_local_switching(struct gsm_subscriber_connection *conn) { struct mgcp_conn_peer mdcx_info; @@ -242,11 +251,7 @@ static void lcls_break_local_switching(struct gsm_subscriber_connection *conn) .port = conn->user_plane.msc_assigned_rtp_port, }; osmo_strlcpy(mdcx_info.addr, conn->user_plane.msc_assigned_rtp_addr, sizeof(mdcx_info.addr)); - mgcp_pick_codec(&mdcx_info, conn->lchan, false); - - mgw_endpoint_ci_request(conn->user_plane.mgw_endpoint_ci_msc, - MGCP_VERB_MDCX, &mdcx_info, - NULL, 0, 0, NULL); + lcls_mdcx(conn, &mdcx_info); } static bool lcls_enable_possible(struct gsm_subscriber_connection *conn) @@ -596,10 +601,7 @@ static void lcls_locally_switched_onenter(struct osmo_fsm_inst *fi, uint32_t pre mdcx_info = *other_mgw_info; /* Make sure the request doesn't want to use the other side's endpoint string. */ mdcx_info.endpoint[0] = 0; - mgcp_pick_codec(&mdcx_info, conn->lchan, false); - mgw_endpoint_ci_request(conn->user_plane.mgw_endpoint_ci_msc, - MGCP_VERB_MDCX, &mdcx_info, - NULL, 0, 0, NULL); + lcls_mdcx(conn, &mdcx_info); } static void lcls_locally_switched_wait_break_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) -- cgit v1.2.3