mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
msc: add mgcpgw client (with dummy read cb so far)
Store the mgcpgw client data in struct gsm_network. Initialize VTY and bind the client. Change-Id: Ifc4efb1ca44fa34c29bf23b35addb54155296d68
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
|
||||
#include <openbsc/rest_octets.h>
|
||||
#include <openbsc/common_cs.h>
|
||||
#include <openbsc/mgcpgw_client.h>
|
||||
|
||||
/** annotations for msgb ownership */
|
||||
#define __uses
|
||||
@@ -457,6 +458,11 @@ struct gsm_network {
|
||||
|
||||
/* Periodic location update default value */
|
||||
uint8_t t3212;
|
||||
|
||||
struct {
|
||||
struct mgcpgw_client_conf conf;
|
||||
struct mgcpgw_client *client;
|
||||
} mgcpgw;
|
||||
};
|
||||
|
||||
struct osmo_esme;
|
||||
|
@@ -122,6 +122,9 @@ static int config_write_msc(struct vty *vty)
|
||||
VTY_NEWLINE);
|
||||
vty_out(vty, " %sassign-tmsi%s",
|
||||
gsmnet->vlr->cfg.assign_tmsi? "" : "no ", VTY_NEWLINE);
|
||||
|
||||
mgcpgw_client_config_write(vty, " ");
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -171,4 +174,5 @@ void msc_vty_init(struct gsm_network *msc_network)
|
||||
install_element(MSC_NODE, &cfg_msc_no_subscr_create_cmd);
|
||||
install_element(MSC_NODE, &cfg_msc_assign_tmsi_cmd);
|
||||
install_element(MSC_NODE, &cfg_msc_no_assign_tmsi_cmd);
|
||||
mgcpgw_client_vty_init(MSC_NODE, &msc_network->mgcpgw.conf);
|
||||
}
|
||||
|
@@ -43,6 +43,7 @@ osmo_msc_LDADD = \
|
||||
$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
|
||||
$(top_builddir)/src/libtrau/libtrau.a \
|
||||
$(top_builddir)/src/libcommon/libcommon.a \
|
||||
$(top_builddir)/src/libmgcp/libmgcp.a \
|
||||
$(LIBOSMOGSM_LIBS) \
|
||||
$(LIBOSMOVTY_LIBS) \
|
||||
$(LIBOSMOCORE_LIBS) \
|
||||
|
@@ -66,6 +66,7 @@
|
||||
#include <openbsc/smpp.h>
|
||||
#include <osmocom/sigtran/sccp_sap.h>
|
||||
#include <osmocom/sigtran/sua.h>
|
||||
#include <openbsc/mgcpgw_client.h>
|
||||
|
||||
#include <openbsc/msc_ifaces.h>
|
||||
#include <openbsc/iu.h>
|
||||
@@ -95,6 +96,16 @@ void *tall_map_ctx = NULL;
|
||||
void *tall_upq_ctx = NULL;
|
||||
/* end deps from libbsc legacy. */
|
||||
|
||||
static void mgcp_rx_cb(struct msgb *msg, void *priv)
|
||||
{
|
||||
static char strbuf[4096];
|
||||
unsigned int l = msg->len < sizeof(strbuf)-1 ? msg->len : sizeof(strbuf)-1;
|
||||
strncpy(strbuf, (const char*)msg->data, l);
|
||||
strbuf[l] = '\0';
|
||||
DEBUGP(DMGCP, "Rx MGCP msg from MGCP GW: '%s'\n", strbuf);
|
||||
talloc_free(msg);
|
||||
}
|
||||
|
||||
static struct {
|
||||
const char *database_name;
|
||||
const char *config_file;
|
||||
@@ -247,6 +258,8 @@ struct gsm_network *msc_network_alloc(void *ctx,
|
||||
net->name_long = talloc_strdup(net, "OsmoMSC");
|
||||
net->name_short = talloc_strdup(net, "OsmoMSC");
|
||||
|
||||
mgcpgw_client_conf_init(&net->mgcpgw.conf);
|
||||
|
||||
return net;
|
||||
}
|
||||
|
||||
@@ -456,6 +469,10 @@ TODO: we probably want some of the _net_ ctrl commands from bsc_base_ctrl_cmds_i
|
||||
/* TODO: is this used for crypto?? Improve randomness, at least we
|
||||
* should try to use the nanoseconds part of the current time. */
|
||||
|
||||
msc_network->mgcpgw.client = mgcpgw_client_init(
|
||||
msc_network, &msc_network->mgcpgw.conf,
|
||||
mgcp_rx_cb, NULL);
|
||||
|
||||
if (db_init(msc_cmdline_config.database_name)) {
|
||||
printf("DB: Failed to init database: %s\n",
|
||||
msc_cmdline_config.database_name);
|
||||
|
Reference in New Issue
Block a user