diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-08-03 02:57:02 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-08-03 03:04:31 +0800 |
commit | c597a4eba134eec47dd21085f86e749a78261726 (patch) | |
tree | 93543d0c2f2f79374c6458007b0c655f98b38058 /openbsc/src/mgcp/mgcp_vty.c | |
parent | 98a3877e979c9e901a7adc6946904a5d535cb93f (diff) |
mgcp: Allow to change the receive (the loopback part) via the VTY
Diffstat (limited to 'openbsc/src/mgcp/mgcp_vty.c')
-rw-r--r-- | openbsc/src/mgcp/mgcp_vty.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/openbsc/src/mgcp/mgcp_vty.c b/openbsc/src/mgcp/mgcp_vty.c index 49974c112..323b31139 100644 --- a/openbsc/src/mgcp/mgcp_vty.c +++ b/openbsc/src/mgcp/mgcp_vty.c @@ -254,12 +254,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_ve(&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, &ournode_exit_cmd); install_element(MGCP_NODE, &ournode_end_cmd); |