Create manager show channels comamnd (#2186) to monitor zap channel status

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3553 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer 2004-07-31 20:43:24 +00:00
parent cfcc58d96e
commit c4bfcdeec5
1 changed files with 45 additions and 0 deletions

View File

@ -8457,6 +8457,49 @@ static int action_zapdialoffhook(struct mansession *s, struct message *m)
return 0;
}
static int action_zapshowchannels(struct mansession *s, struct message *m)
{
struct zt_pvt *tmp = NULL;
char *id = astman_get_header(m, "ActionID");
char idText[256] = "";
astman_send_ack(s, m, "Zapata channel status will follow");
if (id && !ast_strlen_zero(id))
snprintf(idText, sizeof(idText) - 1, "ActionID: %s\r\n", id);
ast_mutex_lock(&iflock);
tmp = iflist;
while (tmp) {
if (tmp->channel > 0) {
int alarm = get_alarms(tmp);
ast_cli(s->fd,
"Event: ZapShowChannels\r\n"
"Channel: %d\r\n"
"Signalling: %s\r\n"
"Context: %s\r\n"
"Alarm: %s\r\n"
"%s"
"\r\n",
tmp->channel, sig2str(tmp->sig), tmp->context,
alarm2str(alarm), idText);
}
tmp = tmp->next;
}
ast_mutex_unlock(&iflock);
ast_cli(s->fd,
"Event: ZapShowChannelsComplete\r\n"
"%s"
"\r\n",
idText);
return 0;
}
static int __unload_module(void)
{
int x = 0;
@ -8485,6 +8528,7 @@ static int __unload_module(void)
ast_manager_unregister( "ZapTransfer" );
ast_manager_unregister( "ZapDNDoff" );
ast_manager_unregister( "ZapDNDon" );
ast_manager_unregister("ZapShowChannels");
ast_unregister_application(app_callingpres);
ast_channel_unregister(typecompat);
ast_channel_unregister(type);
@ -9262,6 +9306,7 @@ int load_module(void)
ast_manager_register( "ZapDialOffhook", 0, action_zapdialoffhook, "Dial over Zap channel while offhook" );
ast_manager_register( "ZapDNDon", 0, action_zapdndon, "Toggle Zap channel Do Not Disturb status ON" );
ast_manager_register( "ZapDNDoff", 0, action_zapdndoff, "Toggle Zap channel Do Not Disturb status OFF" );
ast_manager_register("ZapShowChannels", 0, action_zapshowchannels, "Show status zapata channels");
return res;
}