aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/mgcp/mgcp_vty.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-08-03 17:37:59 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-08-03 17:37:59 +0800
commit87c8f182ccaa688ca13e07c214914a4c20560df6 (patch)
tree964e3b421b1469620ead85d466c73ca139131646 /openbsc/src/mgcp/mgcp_vty.c
parentc4fe5ac43a004f6996d15a6ed1d7fffb7b5e2d6f (diff)
mgcp: Allow to change the receive (the loopback part) via the VTY
Conflicts: openbsc/src/mgcp/mgcp_vty.c
Diffstat (limited to 'openbsc/src/mgcp/mgcp_vty.c')
-rw-r--r--openbsc/src/mgcp/mgcp_vty.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/openbsc/src/mgcp/mgcp_vty.c b/openbsc/src/mgcp/mgcp_vty.c
index a397d30ea..9f09c1aca 100644
--- a/openbsc/src/mgcp/mgcp_vty.c
+++ b/openbsc/src/mgcp/mgcp_vty.c
@@ -253,12 +253,41 @@ DEFUN(cfg_mgcp_agent_addr,
return CMD_SUCCESS;
}
+DEFUN(loop_endp,
+ loop_endp_cmd,
+ "loop-endpoint NAME (0|1)",
+ "Loop a given endpoint\n"
+ "The name in hex of the endpoint\n" "Enable/Disable the loop\n")
+{
+ struct mgcp_endpoint *endp;
+
+ int endp_no = strtoul(argv[0], NULL, 16);
+ if (endp_no < 1 || endp_no >= g_cfg->number_endpoints) {
+ vty_out(vty, "Loopback number %s/%d is invalid.%s",
+ argv[0], endp_no, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+
+ endp = &g_cfg->endpoints[endp_no];
+ int loop = atoi(argv[1]);
+
+ if (loop)
+ endp->conn_mode = MGCP_CONN_LOOPBACK;
+ else
+ endp->conn_mode = endp->orig_mode;
+
+ return CMD_SUCCESS;
+}
+
int mgcp_vty_init(void)
{
install_element(VIEW_NODE, &show_mgcp_cmd);
+ install_element(ENABLE_NODE, &loop_endp_cmd);
install_element(CONFIG_NODE, &cfg_mgcp_cmd);
install_node(&mgcp_node, config_write_mgcp);
+
install_default(MGCP_NODE);
install_element(MGCP_NODE, &cfg_mgcp_local_ip_cmd);
install_element(MGCP_NODE, &cfg_mgcp_bts_ip_cmd);