From 6c8afe148b6e0ef8e4edd6ea4fbbdb3e6134f94b Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 4 Sep 2017 01:03:58 +0200 Subject: [PATCH] use separated libosmo-mgcp-client, apply rename to mgcp_client_* After osmo-mgw changes I8e0b2d2a399b77086a36606f5e427271c6242df1 and I99f7faab637cfcc22ece64a1dbcbe590f2042187, apply linking of new libosmo-mgcp-client and renames to drop the "gw" from mgcp_client_*. Also rename the gsm_network.mgcpgw to mgw, to indicate that the MGCP client is used to contact the MGW (Media Gateway). Depends: I8e0b2d2a399b77086a36606f5e427271c6242df1 (osmo-mgw) I99f7faab637cfcc22ece64a1dbcbe590f2042187 (osmo-mgw) Change-Id: I093ad02ca0e532f659447c785e09678b3e6f220d --- configure.ac | 29 +-------------------------- include/osmocom/msc/gsm_data.h | 8 ++++---- src/libmsc/a_iface.c | 4 ++-- src/libmsc/a_iface_bssap.c | 4 ++-- src/libmsc/gsm_04_08.c | 2 +- src/libmsc/msc_ifaces.c | 36 +++++++++++++++++----------------- src/libmsc/msc_vty.c | 4 ++-- src/osmo-msc/Makefile.am | 5 ++--- src/osmo-msc/msc_main.c | 10 +++++----- tests/msc_vlr/Makefile.am | 4 ++-- tests/sms_queue/Makefile.am | 4 ++-- 11 files changed, 41 insertions(+), 69 deletions(-) diff --git a/configure.ac b/configure.ac index dd61e52da..8f8bdb9e1 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,7 @@ PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.2.0) PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.0.1) PKG_CHECK_MODULES(LIBOSMOSIGTRAN, libosmo-sigtran) # TODO version? PKG_CHECK_MODULES(LIBCRYPTO, libcrypto >= 0.9.5) -PKG_CHECK_MODULES(LIBOSMOLEGACYMGCP, libosmo-legacy-mgcp >= 0.0.1) +PKG_CHECK_MODULES(LIBOSMOMGCPCLIENT, libosmo-mgcp-client >= 1.0.0) # Enable/disable smpp support in the msc? AC_ARG_ENABLE([smpp], [AS_HELP_STRING([--enable-smpp], [Build the SMPP interface])], @@ -127,33 +127,6 @@ if test "$enable_coverage" = "yes"; then AC_SUBST([COVERAGE_LDFLAGS]) fi -AC_DEFUN([CHECK_LIBOSMO_LEGACY_MGCP_NEEDS_LIBGSM], [ - AC_CACHE_CHECK( - [whether libosmo-legacy-mgcp needs -lgsm], - libosmo_cv_legacy_mgcp_needs_libgsm, [ - SAVE_LDFLAGS="${LDFLAGS}" - LDFLAGS="${LIBOSMOLEGACYMGCP_LIBS} ${LIBOSMOVTY_LIBS}" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([ - #include - ], [ - mgcpgw_client_init(0, 0); - ])], - [libosmo_cv_legacy_mgcp_needs_libgsm=no], - [libosmo_cv_legacy_mgcp_needs_libgsm=yes]) - LDFLAGS="${SAVE_LDFLAGS}" - ]) - ]) -CHECK_LIBOSMO_LEGACY_MGCP_NEEDS_LIBGSM -if test "x$libosmo_cv_legacy_mgcp_needs_libgsm" = xyes; then - AC_SEARCH_LIBS([gsm_create], [gsm], [LIBRARY_GSM="$LIBS";LIBS=""], - [AC_MSG_ERROR([libosmo-legacy-mgcp is built with transcoding and needs -lgsm but cannot find usable libgsm])]) - AC_SUBST(LIBRARY_GSM) - if test "$osmo_ac_with_g729" = "yes" ; then - PKG_CHECK_MODULES(LIBBCG729, libbcg729 >= 0.1, [AC_DEFINE([HAVE_BCG729], [1], [Use bgc729 decoder/encoder])]) - fi -fi - AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [ AC_CACHE_CHECK( [whether struct tm has tm_gmtoff member], diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h index 9343c3195..5d3d5cacd 100644 --- a/include/osmocom/msc/gsm_data.h +++ b/include/osmocom/msc/gsm_data.h @@ -17,7 +17,7 @@ #include #include #include -#include +#include /** annotations for msgb ownership */ @@ -486,9 +486,9 @@ struct gsm_network { uint8_t t3212; struct { - struct mgcpgw_client_conf conf; - struct mgcpgw_client *client; - } mgcpgw; + struct mgcp_client_conf conf; + struct mgcp_client *client; + } mgw; struct { /* CS7 instance id number (set via VTY) */ diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 7a6000a12..3d2013e62 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include #include @@ -401,7 +401,7 @@ int a_iface_tx_assignment(const struct gsm_trans *trans) memset(&rtp_addr_in, 0, sizeof(rtp_addr_in)); rtp_addr_in.sin_family = AF_INET; rtp_addr_in.sin_port = osmo_htons(conn->rtp.port_subscr); - rtp_addr_in.sin_addr.s_addr = osmo_htonl(mgcpgw_client_remote_addr_n(gsm_network->mgcpgw.client)); + rtp_addr_in.sin_addr.s_addr = osmo_htonl(mgcp_client_remote_addr_n(gsm_network->mgw.client)); memset(&rtp_addr, 0, sizeof(rtp_addr)); memcpy(&rtp_addr, &rtp_addr_in, sizeof(rtp_addr_in)); diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c index 1cd672337..34d03e300 100644 --- a/src/libmsc/a_iface_bssap.c +++ b/src/libmsc/a_iface_bssap.c @@ -557,7 +557,7 @@ static int bssmap_rx_ass_compl(const struct osmo_sccp_user *scu, const struct a_ { struct gsm_network *network = a_conn_info->network; struct gsm_subscriber_connection *conn; - struct mgcpgw_client *mgcp; + struct mgcp_client *mgcp; struct tlv_parsed tp; struct sockaddr_storage rtp_addr; struct sockaddr_in *rtp_addr_in; @@ -567,7 +567,7 @@ static int bssmap_rx_ass_compl(const struct osmo_sccp_user *scu, const struct a_ if (!conn) goto fail; - mgcp = conn->network->mgcpgw.client; + mgcp = conn->network->mgw.client; OSMO_ASSERT(mgcp); LOGP(DMSC, LOGL_NOTICE, "BSC sends assignment complete message (conn_id=%i)\n", conn->a.conn_id); diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 2ef0b306f..84f52c6fa 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -2667,7 +2667,7 @@ static void mncc_recv_rtp_sock(struct gsm_network *net, struct gsm_trans *trans, * (0 if unknown) */ msg_type = GSM_TCHF_FRAME; - uint32_t addr = mgcpgw_client_remote_addr_n(net->mgcpgw.client); + uint32_t addr = mgcp_client_remote_addr_n(net->mgw.client); uint16_t port = trans->conn->rtp.port_cn; /* FIXME: This has to be set to some meaningful value, diff --git a/src/libmsc/msc_ifaces.c b/src/libmsc/msc_ifaces.c index b191e0def..7a04153a6 100644 --- a/src/libmsc/msc_ifaces.c +++ b/src/libmsc/msc_ifaces.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include @@ -192,7 +192,7 @@ static void mgcp_response_rab_act_cs_crcx(struct mgcp_response *r, void *priv) conn->rtp.port_cn = r->audio_port; - rtp_ip = mgcpgw_client_remote_addr_n(conn->network->mgcpgw.client); + rtp_ip = mgcp_client_remote_addr_n(conn->network->mgw.client); if (trans->conn->via_ran == RAN_UTRAN_IU) { /* Assign a voice channel via RANAP on 3G */ @@ -222,7 +222,7 @@ rab_act_cs_error: int msc_call_assignment(struct gsm_trans *trans) { struct gsm_subscriber_connection *conn; - struct mgcpgw_client *mgcp; + struct mgcp_client *mgcp; struct msgb *msg; uint16_t bts_base; @@ -232,7 +232,7 @@ int msc_call_assignment(struct gsm_trans *trans) return -EINVAL; conn = trans->conn; - mgcp = conn->network->mgcpgw.client; + mgcp = conn->network->mgw.client; #ifdef BUILD_IU /* FIXME: HACK. where to scope the RAB Id? At the conn / subscriber / ranap_ue_conn_ctx? */ @@ -242,14 +242,14 @@ int msc_call_assignment(struct gsm_trans *trans) #endif conn->rtp.mgcp_rtp_endpoint = - mgcpgw_client_next_endpoint(conn->network->mgcpgw.client); + mgcp_client_next_endpoint(conn->network->mgw.client); /* This will calculate the port we assign to the BTS via AoIP * assignment command (or rab-assignment on 3G) The BTS will send * its RTP traffic to that port on the MGCPGW side. The MGCPGW only * gets the endpoint ID via the CRCX. It will do the same calculation * on his side too to get knowledge of the rtp port. */ - bts_base = mgcpgw_client_conf_actual(mgcp)->bts_base; + bts_base = mgcp_client_conf_actual(mgcp)->bts_base; conn->rtp.port_subscr = bts_base + 2 * conn->rtp.mgcp_rtp_endpoint; /* Establish the RTP stream first as looping back to the originator. @@ -257,7 +257,7 @@ int msc_call_assignment(struct gsm_trans *trans) * tone instead. */ msg = mgcp_msg_crcx(mgcp, conn->rtp.mgcp_rtp_endpoint, conn->rtp.mgcp_rtp_endpoint, MGCP_CONN_LOOPBACK); - return mgcpgw_client_tx(mgcp, msg, mgcp_response_rab_act_cs_crcx, trans); + return mgcp_client_tx(mgcp, msg, mgcp_response_rab_act_cs_crcx, trans); } static void mgcp_response_bridge_mdcx(struct mgcp_response *r, void *priv); @@ -268,7 +268,7 @@ static void mgcp_bridge(struct gsm_trans *from, struct gsm_trans *to, { struct gsm_subscriber_connection *conn1 = from->conn; struct gsm_subscriber_connection *conn2 = to->conn; - struct mgcpgw_client *mgcp = conn1->network->mgcpgw.client; + struct mgcp_client *mgcp = conn1->network->mgw.client; const char *ip; struct msgb *msg; @@ -278,13 +278,13 @@ static void mgcp_bridge(struct gsm_trans *from, struct gsm_trans *to, from->bridge.state = state; /* Loop back to the same MGCP GW */ - ip = mgcpgw_client_remote_addr_str(mgcp); + ip = mgcp_client_remote_addr_str(mgcp); msg = mgcp_msg_mdcx(mgcp, conn1->rtp.mgcp_rtp_endpoint, ip, conn2->rtp.port_cn, mode); - if (mgcpgw_client_tx(mgcp, msg, mgcp_response_bridge_mdcx, from)) + if (mgcp_client_tx(mgcp, msg, mgcp_response_bridge_mdcx, from)) LOGP(DMGCP, LOGL_ERROR, "Failed to send MDCX message for %s\n", vlr_subscr_name(from->vsub)); @@ -346,7 +346,7 @@ int msc_call_connect(struct gsm_trans *trans, uint16_t port, uint32_t ip) * is in use */ struct gsm_subscriber_connection *conn; - struct mgcpgw_client *mgcp; + struct mgcp_client *mgcp; struct msgb *msg; if (!trans) @@ -355,10 +355,10 @@ int msc_call_connect(struct gsm_trans *trans, uint16_t port, uint32_t ip) return -EINVAL; if (!trans->conn->network) return -EINVAL; - if (!trans->conn->network->mgcpgw.client) + if (!trans->conn->network->mgw.client) return -EINVAL; - mgcp = trans->conn->network->mgcpgw.client; + mgcp = trans->conn->network->mgw.client; struct in_addr ip_addr; ip_addr.s_addr = ntohl(ip); @@ -368,7 +368,7 @@ int msc_call_connect(struct gsm_trans *trans, uint16_t port, uint32_t ip) msg = mgcp_msg_mdcx(mgcp, conn->rtp.mgcp_rtp_endpoint, inet_ntoa(ip_addr), port, MGCP_CONN_RECV_SEND); - if (mgcpgw_client_tx(mgcp, msg, NULL, trans)) + if (mgcp_client_tx(mgcp, msg, NULL, trans)) LOGP(DMGCP, LOGL_ERROR, "Failed to send MDCX message for %s\n", vlr_subscr_name(trans->vsub)); @@ -398,7 +398,7 @@ void msc_call_release(struct gsm_trans *trans) { struct msgb *msg; struct gsm_subscriber_connection *conn; - struct mgcpgw_client *mgcp; + struct mgcp_client *mgcp; if (!trans) return; @@ -408,16 +408,16 @@ void msc_call_release(struct gsm_trans *trans) return; conn = trans->conn; - mgcp = conn->network->mgcpgw.client; + mgcp = conn->network->mgw.client; /* Send DLCX */ msg = mgcp_msg_dlcx(mgcp, conn->rtp.mgcp_rtp_endpoint, conn->rtp.mgcp_rtp_endpoint); - if (mgcpgw_client_tx(mgcp, msg, NULL, NULL)) + if (mgcp_client_tx(mgcp, msg, NULL, NULL)) LOGP(DMGCP, LOGL_ERROR, "Failed to send DLCX message for %s\n", vlr_subscr_name(trans->vsub)); /* Release endpoint id */ - mgcpgw_client_release_endpoint(conn->rtp.mgcp_rtp_endpoint, mgcp); + mgcp_client_release_endpoint(conn->rtp.mgcp_rtp_endpoint, mgcp); } diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 2f0f056b3..5c9539d90 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -101,7 +101,7 @@ static int config_write_msc(struct vty *vty) vty_out(vty, " cs7-instance-iu %u%s", gsmnet->iu.cs7_instance, VTY_NEWLINE); - mgcpgw_client_config_write(vty, " "); + mgcp_client_config_write(vty, " "); #ifdef BUILD_IU ranap_iu_vty_config_write(vty, " "); #endif @@ -155,7 +155,7 @@ void msc_vty_init(struct gsm_network *msc_network) install_element(MSC_NODE, &cfg_msc_cs7_instance_a_cmd); install_element(MSC_NODE, &cfg_msc_cs7_instance_iu_cmd); - mgcpgw_client_vty_init(msc_network, MSC_NODE, &msc_network->mgcpgw.conf); + mgcp_client_vty_init(msc_network, MSC_NODE, &msc_network->mgw.conf); #ifdef BUILD_IU ranap_iu_vty_init(MSC_NODE, &msc_network->iu.rab_assign_addr_enc); #endif diff --git a/src/osmo-msc/Makefile.am b/src/osmo-msc/Makefile.am index a26b4bdc0..85a5a5ab2 100644 --- a/src/osmo-msc/Makefile.am +++ b/src/osmo-msc/Makefile.am @@ -17,7 +17,7 @@ AM_CFLAGS = \ $(LIBOSMORANAP_CFLAGS) \ $(LIBASN1C_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ - $(LIBOSMOLEGACYMGCP_CFLAGS) \ + $(LIBOSMOMGCPCLIENT_CFLAGS) \ $(NULL) AM_LDFLAGS = \ @@ -45,8 +45,7 @@ osmo_msc_LDADD = \ $(LIBSMPP34_LIBS) \ $(LIBCRYPTO_LIBS) \ $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMOLEGACYMGCP_LIBS) \ - $(LIBRARY_GSM) \ + $(LIBOSMOMGCPCLIENT_LIBS) \ -ldbi \ $(NULL) if BUILD_IU diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 41dfedb9d..75ba19c4e 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -64,7 +64,7 @@ #include #include #include -#include +#include #ifdef BUILD_IU #include @@ -251,7 +251,7 @@ struct gsm_network *msc_network_alloc(void *ctx, MSC_HLR_REMOTE_IP_DEFAULT); net->gsup_server_port = MSC_HLR_REMOTE_PORT_DEFAULT; - mgcpgw_client_conf_init(&net->mgcpgw.conf); + mgcp_client_conf_init(&net->mgw.conf); return net; } @@ -553,10 +553,10 @@ TODO: we probably want some of the _net_ ctrl commands from bsc_base_ctrl_cmds_i if (sms_queue_start(msc_network, 20) != 0) return -1; - msc_network->mgcpgw.client = mgcpgw_client_init( - msc_network, &msc_network->mgcpgw.conf); + msc_network->mgw.client = mgcp_client_init( + msc_network, &msc_network->mgw.conf); - if (mgcpgw_client_connect(msc_network->mgcpgw.client)) { + if (mgcp_client_connect(msc_network->mgw.client)) { printf("MGCPGW connect failed\n"); return 7; } diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am index fb4857f28..aa2b3fe78 100644 --- a/tests/msc_vlr/Makefile.am +++ b/tests/msc_vlr/Makefile.am @@ -15,7 +15,7 @@ AM_CFLAGS = \ $(LIBOSMOSIGTRAN_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ $(LIBASN1C_CFLAGS) \ - $(LIBOSMOLEGACYMGCP_CFLAGS) \ + $(LIBOSMOMGCPCLIENT_CFLAGS) \ $(NULL) AM_LDFLAGS = \ @@ -44,7 +44,7 @@ AM_LDFLAGS = \ $(LIBOSMOSIGTRAN_LIBS) \ $(LIBOSMORANAP_LIBS) \ $(LIBASN1C_LIBS) \ - $(LIBOSMOLEGACYMGCP_LIBS) \ + $(LIBOSMOMGCPCLIENT_LIBS) \ $(LIBRARY_GSM) \ -ldbi \ -lrt \ diff --git a/tests/sms_queue/Makefile.am b/tests/sms_queue/Makefile.am index 1d3b9da6f..1f8ee7b48 100644 --- a/tests/sms_queue/Makefile.am +++ b/tests/sms_queue/Makefile.am @@ -14,7 +14,7 @@ AM_CFLAGS = \ $(LIBOSMOSIGTRAN_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ $(LIBASN1C_CFLAGS) \ - $(LIBOSMOLEGACYMGCP_CFLAGS) \ + $(LIBOSMOMGCPCLIENT_CFLAGS) \ $(NULL) EXTRA_DIST = \ @@ -44,7 +44,7 @@ sms_queue_test_LDADD = \ $(LIBOSMOSIGTRAN_LIBS) \ $(LIBOSMORANAP_LIBS) \ $(LIBASN1C_LIBS) \ - $(LIBOSMOLEGACYMGCP_LIBS) \ + $(LIBOSMOMGCPCLIENT_LIBS) \ $(LIBRARY_GSM) \ -ldbi \ -lrt \