aboutsummaryrefslogtreecommitdiffstats
path: root/manager.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-06 18:19:51 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-06 18:19:51 +0000
commit249face569822d37bb4d950272923c28f365842d (patch)
treeffb2ec150363a599ae454201f011ad6830e00367 /manager.c
parentc30aaa890638ce89d3f643eb8e47314538fad257 (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-xmanager.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/manager.c b/manager.c
index 6491ed2a9..dba21443b 100755
--- a/manager.c
+++ b/manager.c
@@ -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);