aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/mgcp.h10
-rw-r--r--openbsc/src/libmgcp/mgcp_vty.c4
-rw-r--r--openbsc/src/osmo-bsc_mgcp/mgcp_main.c2
-rw-r--r--openbsc/src/osmo-bsc_nat/bsc_nat.c2
4 files changed, 14 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/mgcp.h b/openbsc/include/openbsc/mgcp.h
index 811dcfda7..4e22e0f5e 100644
--- a/openbsc/include/openbsc/mgcp.h
+++ b/openbsc/include/openbsc/mgcp.h
@@ -125,6 +125,11 @@ struct mgcp_trunk_config {
struct mgcp_endpoint *endpoints;
};
+enum mgcp_role {
+ MGCP_BSC = 0,
+ MGCP_BSC_NAT,
+};
+
struct mgcp_config {
int source_port;
char *local_ip;
@@ -162,11 +167,14 @@ struct mgcp_config {
/* only used for start with a static configuration */
int last_net_port;
int last_bts_port;
+
+ enum mgcp_role role;
};
/* config management */
struct mgcp_config *mgcp_config_alloc(void);
-int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg);
+int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg,
+ enum mgcp_role role);
int mgcp_vty_init(void);
int mgcp_endpoints_allocate(struct mgcp_trunk_config *cfg);
void mgcp_free_endp(struct mgcp_endpoint *endp);
diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c
index 69984ee92..833908a21 100644
--- a/openbsc/src/libmgcp/mgcp_vty.c
+++ b/openbsc/src/libmgcp/mgcp_vty.c
@@ -898,7 +898,8 @@ static int allocate_trunk(struct mgcp_trunk_config *trunk)
return 0;
}
-int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg)
+int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg,
+ enum mgcp_role role)
{
int rc;
struct mgcp_trunk_config *trunk;
@@ -935,6 +936,7 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg)
return -1;
}
}
+ cfg->role = role;
return 0;
}
diff --git a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
index 540f7602b..596ea8a49 100644
--- a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
+++ b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
@@ -223,7 +223,7 @@ int main(int argc, char **argv)
handle_options(argc, argv);
- rc = mgcp_parse_config(config_file, cfg);
+ rc = mgcp_parse_config(config_file, cfg, MGCP_BSC);
if (rc < 0)
return rc;
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c
index 897c657d1..1eac9837c 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c
@@ -1515,7 +1515,7 @@ int main(int argc, char **argv)
/* init vty and parse */
telnet_init(tall_bsc_ctx, NULL, 4244);
- if (mgcp_parse_config(config_file, nat->mgcp_cfg) < 0) {
+ if (mgcp_parse_config(config_file, nat->mgcp_cfg, MGCP_BSC_NAT) < 0) {
fprintf(stderr, "Failed to parse the config file: '%s'\n", config_file);
return -3;
}