mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 16:21:01 +00:00
added CLI 'iax2 unregister <peername>' for issue 9812, thanks eliel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@67901 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -4436,6 +4436,49 @@ static int iax2_show_threads(int fd, int argc, char *argv[])
|
|||||||
return RESULT_SUCCESS;
|
return RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int iax2_unregister(int fd, int argc, char *argv[]) {
|
||||||
|
struct iax2_peer *p;
|
||||||
|
|
||||||
|
if (argc != 3)
|
||||||
|
return RESULT_SHOWUSAGE;
|
||||||
|
|
||||||
|
p = find_peer(argv[2], 1);
|
||||||
|
if (p) {
|
||||||
|
if (p->expire > 0) {
|
||||||
|
expire_registry(argv[2]);
|
||||||
|
ast_cli(fd, "Peer %s unregistered\n", argv[2]);
|
||||||
|
} else {
|
||||||
|
ast_cli(fd, "Peer %s not registered\n", argv[2]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ast_cli(fd, "Peer unknown: %s. Not unregistered\n", argv[2]);
|
||||||
|
}
|
||||||
|
return RESULT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *complete_iax2_unregister(const char *line, const char *word, int pos, int state)
|
||||||
|
{
|
||||||
|
int which = 0;
|
||||||
|
struct iax2_peer *p = NULL;
|
||||||
|
char *res = NULL;
|
||||||
|
int wordlen = strlen(word);
|
||||||
|
|
||||||
|
/* 0 - iax2; 1 - unregister; 2 - <peername> */
|
||||||
|
if (pos == 2) {
|
||||||
|
AST_LIST_LOCK(&peers);
|
||||||
|
AST_LIST_TRAVERSE(&peers, p, entry) {
|
||||||
|
if (!strncasecmp(p->name, word, wordlen) &&
|
||||||
|
++which > state && p->expire > 0) {
|
||||||
|
res = ast_strdup(p->name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AST_LIST_UNLOCK(&peers);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
static int iax2_show_peers(int fd, int argc, char *argv[])
|
static int iax2_show_peers(int fd, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
return __iax2_show_peers(0, fd, NULL, argc, argv);
|
return __iax2_show_peers(0, fd, NULL, argc, argv);
|
||||||
@@ -10270,6 +10313,10 @@ static const char show_threads_usage[] =
|
|||||||
"Usage: iax2 show threads\n"
|
"Usage: iax2 show threads\n"
|
||||||
" Lists status of IAX helper threads\n";
|
" Lists status of IAX helper threads\n";
|
||||||
|
|
||||||
|
static const char unregister_usage[] =
|
||||||
|
"Usage: iax2 unregister <peername>\n"
|
||||||
|
" Unregister (force expiration) an IAX2 peer from the registry.\n";
|
||||||
|
|
||||||
static const char show_peers_usage[] =
|
static const char show_peers_usage[] =
|
||||||
"Usage: iax2 show peers [registered] [like <pattern>]\n"
|
"Usage: iax2 show peers [registered] [like <pattern>]\n"
|
||||||
" Lists all known IAX2 peers.\n"
|
" Lists all known IAX2 peers.\n"
|
||||||
@@ -10359,6 +10406,10 @@ static struct ast_cli_entry cli_iax2[] = {
|
|||||||
iax2_show_threads, "Display IAX helper thread info",
|
iax2_show_threads, "Display IAX helper thread info",
|
||||||
show_threads_usage },
|
show_threads_usage },
|
||||||
|
|
||||||
|
{ { "iax2", "unregister", NULL },
|
||||||
|
iax2_unregister, "Unregister (force expiration) an IAX2 peer from the registry",
|
||||||
|
unregister_usage, complete_iax2_unregister },
|
||||||
|
|
||||||
{ { "iax2", "set", "mtu", NULL },
|
{ { "iax2", "set", "mtu", NULL },
|
||||||
iax2_set_mtu, "Set the IAX systemwide trunking MTU",
|
iax2_set_mtu, "Set the IAX systemwide trunking MTU",
|
||||||
set_mtu_usage, NULL, NULL },
|
set_mtu_usage, NULL, NULL },
|
||||||
|
Reference in New Issue
Block a user