diff options
author | Max <msuraev@sysmocom.de> | 2018-11-01 11:55:15 +0100 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2018-11-06 22:14:55 +0000 |
commit | 5962f23181bddd7f9f23cac496483a4ec3fc1a0c (patch) | |
tree | aaaed5c9f091f126674621d4a5af338a5ced3a27 | |
parent | 5a5c7fd428701fb55d3bfde8c29e8970c1cf48e8 (diff) |
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
-rw-r--r-- | src/osmo-bsc/osmo_bsc_lcls.c | 20 |
1 files 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) |