diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h index 638791a8b..ab80cb401 100644 --- a/openbsc/include/openbsc/bsc_nat.h +++ b/openbsc/include/openbsc/bsc_nat.h @@ -22,6 +22,8 @@ #ifndef BSC_NAT_H #define BSC_NAT_H +#include "mgcp.h" + #include #include @@ -33,6 +35,8 @@ #define DIR_BSC 1 #define DIR_MSC 2 +#define NAT_IPAC_PROTO_MGCP + struct bsc_nat; /* @@ -135,6 +139,9 @@ struct bsc_nat { /* known BSC's */ struct llist_head bsc_configs; int num_bsc; + + /* MGCP config */ + struct mgcp_config *mgcp_cfg; }; /* create and init the structures */ diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c index 156823033..e8ba42802 100644 --- a/openbsc/src/nat/bsc_nat.c +++ b/openbsc/src/nat/bsc_nat.c @@ -703,10 +703,12 @@ int main(int argc, char** argv) return -4; } + nat->mgcp_cfg = talloc_zero(nat, struct mgcp_config); + /* init vty and parse */ bsc_nat_vty_init(nat); telnet_init(NULL, 4244); - if (vty_read_config_file(config_file) < 0) { + if (mgcp_parse_config(config_file, nat->mgcp_cfg) < 0) { fprintf(stderr, "Failed to parse the config file: '%s'\n", config_file); return -3; } diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c index 6dae0d65c..3a468e9fa 100644 --- a/openbsc/src/nat/bsc_nat_vty.c +++ b/openbsc/src/nat/bsc_nat_vty.c @@ -25,6 +25,7 @@ #include #include +#include #include @@ -208,6 +209,8 @@ int bsc_nat_vty_init(struct bsc_nat *nat) install_element(BSC_NODE, &cfg_bsc_token_cmd); install_element(BSC_NODE, &cfg_bsc_lac_cmd); + mgcp_vty_init(); + return 0; }