diff --git a/doc/manager_1_1.txt b/doc/manager_1_1.txt index a9b47def5295cfd1abc95e02210d393d06140242..30ba876ca56b85f48c147af38d9bf8c6137c4a7f 100644 --- a/doc/manager_1_1.txt +++ b/doc/manager_1_1.txt @@ -314,6 +314,22 @@ Changes to manager version 1.1: * NEW EVENTS ------------ +- Event: FullyBooted + Modules: loader.c + Purpose: + It is handy to have a single event notification for when all Asterisk + modules have been loaded--especially for situations like running + automated tests. This event will fire 1) immediately upon all modules + loading or 2) upon connection to the AMI interface if the modules have + already finished loading before the connection was made. This ensures + that a user will never miss getting a FullyBooted event. In vary rare + circumstances, it might be possible to get two copies of the message + if the AMI connection is made right as the modules finish loading. + Example: + Event: FullyBooted + Privilege: system,all + Status: Fully Booted + - Event: Transfer Modules: res_features, chan_sip Purpose: diff --git a/main/asterisk.c b/main/asterisk.c index fd29a6f64bfeb2cf1bac732b7d80108e2970ca67..a9844de9697dd29c368794b959d718f117275c41 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -3723,6 +3723,7 @@ int main(int argc, char *argv[]) sig_alert_pipe[0] = sig_alert_pipe[1] = -1; ast_set_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED); + manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n"); ast_process_pending_reloads(); diff --git a/main/manager.c b/main/manager.c index 297e94f5f28b6d98aa85430f2ae33192c50e3245..f23cec8a2351493a58f388aa6aa27255e14e83c6 100644 --- a/main/manager.c +++ b/main/manager.c @@ -2740,6 +2740,9 @@ static int action_login(struct mansession *s, const struct message *m) ast_verb(2, "%sManager '%s' logged on from %s\n", (s->session->managerid ? "HTTP " : ""), s->session->username, ast_inet_ntoa(s->session->sin.sin_addr)); } astman_send_ack(s, m, "Authentication accepted"); + if (ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) { + manager_event(EVENT_FLAG_SYSTEM, "FullyBooted", "Status: Fully Booted\r\n"); + } return 0; }