From 6bcb986b067ca0eedf78f62b85d9328f602b3b02 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Tue, 8 Aug 2017 12:04:30 +0200 Subject: mgcp: add VTY Option to force-realloc endpoints Currently the force_realloc feature is turnd on and of in a hardcoded way. This patch makes the option available via VTY. Change-Id: Ic8740512c5ea0766ff6ceb1c28b9c2b3fe46e75f --- src/libmgcp/mgcp_vty.c | 14 +++++++++++++- src/osmo-bsc_mgcp/mgcp_main.c | 2 ++ src/osmo-bsc_nat/bsc_mgcp_utils.c | 1 - src/osmo-bsc_nat/bsc_nat.c | 3 +++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/libmgcp/mgcp_vty.c b/src/libmgcp/mgcp_vty.c index 7d4b2da84..51889d9a4 100644 --- a/src/libmgcp/mgcp_vty.c +++ b/src/libmgcp/mgcp_vty.c @@ -591,6 +591,16 @@ DEFUN(cfg_mgcp_loop, return CMD_SUCCESS; } +DEFUN(cfg_mgcp_force_realloc, + cfg_mgcp_force_realloc_cmd, + "force-realloc (0|1)", + "Force endpoint reallocation when the endpoint is still seized\n" + "Don't force reallocation\n" "force reallocation\n") +{ + g_cfg->trunk.force_realloc = atoi(argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_mgcp_number_endp, cfg_mgcp_number_endp_cmd, "number endpoints <0-65534>", @@ -803,9 +813,10 @@ static int config_write_trunk(struct vty *vty) trunk->keepalive_interval, VTY_NEWLINE); else vty_out(vty, " no rtp keep-alive%s", VTY_NEWLINE); - vty_out(vty, " loop %d%s", trunk->audio_loop, VTY_NEWLINE); + vty_out(vty, " force-realloc %d%s", + trunk->force_realloc, VTY_NEWLINE); if (trunk->omit_rtcp) vty_out(vty, " rtcp-omit%s", VTY_NEWLINE); else @@ -1379,6 +1390,7 @@ int mgcp_vty_init(void) install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_number_cmd_old); install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_name_cmd_old); install_element(MGCP_NODE, &cfg_mgcp_loop_cmd); + install_element(MGCP_NODE, &cfg_mgcp_force_realloc_cmd); install_element(MGCP_NODE, &cfg_mgcp_number_endp_cmd); install_element(MGCP_NODE, &cfg_mgcp_omit_rtcp_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_omit_rtcp_cmd); diff --git a/src/osmo-bsc_mgcp/mgcp_main.c b/src/osmo-bsc_mgcp/mgcp_main.c index 4ea070079..6cf9ab786 100644 --- a/src/osmo-bsc_mgcp/mgcp_main.c +++ b/src/osmo-bsc_mgcp/mgcp_main.c @@ -218,6 +218,8 @@ int main(int argc, char **argv) cfg->get_net_downlink_format_cb = &mgcp_transcoding_net_downlink_format; #endif + cfg->trunk.force_realloc = 1; + vty_info.copyright = openbsc_copyright; vty_init(&vty_info); logging_vty_add_cmds(NULL); diff --git a/src/osmo-bsc_nat/bsc_mgcp_utils.c b/src/osmo-bsc_nat/bsc_mgcp_utils.c index 48847865c..7df362f89 100644 --- a/src/osmo-bsc_nat/bsc_mgcp_utils.c +++ b/src/osmo-bsc_nat/bsc_mgcp_utils.c @@ -1101,7 +1101,6 @@ int bsc_mgcp_nat_init(struct bsc_nat *nat) /* some more MGCP config handling */ cfg->data = nat; cfg->policy_cb = bsc_mgcp_policy_cb; - cfg->trunk.force_realloc = 1; if (cfg->bts_ip) talloc_free(cfg->bts_ip); diff --git a/src/osmo-bsc_nat/bsc_nat.c b/src/osmo-bsc_nat/bsc_nat.c index daa066d05..d15ba8762 100644 --- a/src/osmo-bsc_nat/bsc_nat.c +++ b/src/osmo-bsc_nat/bsc_nat.c @@ -1628,6 +1628,9 @@ int main(int argc, char **argv) rate_ctr_init(tall_bsc_ctx); osmo_stats_init(tall_bsc_ctx); + /* Ensure that forced enpoint allocation is turned on by default */ + cfg->trunk.force_realloc = 1; + /* init vty and parse */ 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); -- cgit v1.2.3