diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-04-06 18:19:51 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-04-06 18:19:51 +0000 |
commit | 249face569822d37bb4d950272923c28f365842d (patch) | |
tree | ffb2ec150363a599ae454201f011ad6830e00367 /manager.c | |
parent | c30aaa890638ce89d3f643eb8e47314538fad257 (diff) |
Merge enhanced status changes, add SIP subscribe from Andre
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@759 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rwxr-xr-x | manager.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -425,7 +425,24 @@ static int action_mailboxstatus(struct mansession *s, struct message *m) return 0; } astman_send_ack(s, "Mailbox status will follow"); - manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s\r\nWaiting:%d\r\n", mailbox, ast_app_has_voicemail(mailbox)); + manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s\r\nWaiting: %d\r\n", mailbox, ast_app_has_voicemail(mailbox)); + return 0; +} + +static int action_extensionstate(struct mansession *s, struct message *m) +{ + char *exten = astman_get_header(m, "Exten"); + char *context = astman_get_header(m, "Context"); + int status; + if (!exten || !strlen(exten)) { + astman_send_error(s, "Extension not specified"); + return 0; + } + if (!context || !strlen(context)) + context = "default"; + astman_send_ack(s, "Extension status will follow"); + status = ast_extension_state(NULL, context, exten); + manager_event(EVENT_FLAG_CALL, "ExtensionStatus", "Exten: %s\r\nContext: %s\r\nStatus: %d\r\n", exten, context, status); return 0; } @@ -710,6 +727,7 @@ int init_manager(void) ast_manager_register( "Originate", EVENT_FLAG_CALL, action_originate, "Originate Call" ); ast_manager_register( "MailboxStatus", EVENT_FLAG_CALL, action_mailboxstatus, "Check Mailbox" ); ast_manager_register( "Command", EVENT_FLAG_COMMAND, action_command, "Execute Command" ); + ast_manager_register( "ExtensionState", EVENT_FLAG_CALL, action_extensionstate, "Check Extension Status" ); ast_cli_register(&show_mancmds_cli); ast_cli_register(&show_manconn_cli); |