Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 41164) +++ apps/app_queue.c (working copy) @@ -3764,6 +3764,27 @@ return 0; } +static int manager_queue_log(struct mansession *s, struct message *m) +{ + char *queuename, *event, *message, *agent, *callid; + + queuename = astman_get_header(m, "Queue"); + callid = astman_get_header(m, "CallID"); + agent = astman_get_header(m, "Agent"); + event = astman_get_header(m, "Event"); + message = astman_get_header(m, "Message"); + + if ( ast_strlen_zero(queuename) || ast_strlen_zero(event) ) { + astman_send_error(s, m, "Need 'Queue' and 'Event' parameters."); + return 0; + } + + ast_queue_log(queuename, callid, agent, event, "%s", message); + astman_send_ack(s, m, "Event added successfully"); + + return 0; +} + static int handle_add_queue_member(int fd, int argc, char *argv[]) { char *queuename, *interface; @@ -3961,6 +3982,7 @@ res |= ast_manager_unregister("QueueAdd"); res |= ast_manager_unregister("QueueRemove"); res |= ast_manager_unregister("QueuePause"); + res |= ast_manager_unregister("QueueLog"); ast_devstate_del(statechange_queue, NULL); res |= ast_unregister_application(app_aqm); res |= ast_unregister_application(app_rqm); @@ -3989,6 +4011,7 @@ res |= ast_manager_register( "QueueAdd", EVENT_FLAG_AGENT, manager_add_queue_member, "Add interface to queue." ); res |= ast_manager_register( "QueueRemove", EVENT_FLAG_AGENT, manager_remove_queue_member, "Remove interface from queue." ); res |= ast_manager_register( "QueuePause", EVENT_FLAG_AGENT, manager_pause_queue_member, "Makes a queue member temporarily unavailable" ); + res |= ast_manager_register( "QueueLog", EVENT_FLAG_AGENT, manager_queue_log, "Adds custom entry in queue_log" ); res |= ast_register_application(app_aqm, aqm_exec, app_aqm_synopsis, app_aqm_descrip) ; res |= ast_register_application(app_rqm, rqm_exec, app_rqm_synopsis, app_rqm_descrip) ; res |= ast_register_application(app_pqm, pqm_exec, app_pqm_synopsis, app_pqm_descrip) ;