Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 219231) +++ apps/app_queue.c (working copy) @@ -1763,7 +1763,7 @@ m->dead = 0; m->realtime = 1; ast_copy_string(m->rt_uniqueid, rt_uniqueid, sizeof(m->rt_uniqueid)); - ast_queue_log(q->name, "REALTIME", m->interface, "ADDMEMBER", "%s", ""); + ast_queue_log(q->name, "REALTIME", m->interface, "ADDMEMBER", "%s", membername); ao2_link(q->members, m); ao2_ref(m, -1); m = NULL; @@ -1948,7 +1948,7 @@ mem_iter = ao2_iterator_init(q->members, 0); while ((m = ao2_iterator_next(&mem_iter))) { if (m->dead) { - ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", ""); + ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", m->membername); ao2_unlink(q->members, m); q->membercount--; } @@ -2073,7 +2073,7 @@ mem_iter = ao2_iterator_init(q->members, 0); while ((m = ao2_iterator_next(&mem_iter))) { if (m->dead) { - ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", ""); + ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", m->membername); ao2_unlink(q->members, m); q->membercount--; } @@ -5085,11 +5085,36 @@ return 0; } +static char *interface2membername(const char *queuename, const char *interface, char *membername, size_t maxlen) +{ + struct call_queue *q = NULL; + struct member *m; + struct ao2_iterator qiter; + + *membername = '\0'; + + qiter = ao2_iterator_init(queues, 0); + while ((q = ao2_iterator_next(&qiter))) { + if (!strcasecmp(q->name, queuename)) { + if ((m = interface_exists(q, interface))) { + ast_copy_string(membername, m->membername, maxlen); + ao2_ref(m, -1); + } + + queue_unref(q); + break; + } + queue_unref(q); + } + + return membername; +} + /*! \brief RemoveQueueMember application */ static int rqm_exec(struct ast_channel *chan, const char *data) { int res=-1; - char *parse, *temppos = NULL; + char *parse, *temppos = NULL, membername[80]; AST_DECLARE_APP_ARGS(args, AST_APP_ARG(queuename); AST_APP_ARG(interface); @@ -5115,9 +5140,10 @@ ast_debug(1, "queue: %s, member: %s\n", args.queuename, args.interface); + interface2membername(args.queuename, args.interface, membername, sizeof(membername)); switch (remove_from_queue(args.queuename, args.interface)) { case RES_OKAY: - ast_queue_log(args.queuename, chan->uniqueid, args.interface, "REMOVEMEMBER", "%s", ""); + ast_queue_log(args.queuename, chan->uniqueid, args.interface, "REMOVEMEMBER", "%s", membername); ast_log(LOG_NOTICE, "Removed interface '%s' from queue '%s'\n", args.interface, args.queuename); pbx_builtin_setvar_helper(chan, "RQMSTATUS", "REMOVED"); res = 0; @@ -5182,7 +5208,7 @@ switch (add_to_queue(args.queuename, args.interface, args.membername, penalty, 0, queue_persistent_members, args.state_interface)) { case RES_OKAY: - ast_queue_log(args.queuename, chan->uniqueid, args.interface, "ADDMEMBER", "%s", ""); + ast_queue_log(args.queuename, chan->uniqueid, args.interface, "ADDMEMBER", "%s", args.membername); ast_log(LOG_NOTICE, "Added interface '%s' to queue '%s'\n", args.interface, args.queuename); pbx_builtin_setvar_helper(chan, "AQMSTATUS", "ADDED"); res = 0; @@ -6741,7 +6767,7 @@ switch (add_to_queue(queuename, interface, membername, penalty, paused, queue_persistent_members, state_interface)) { case RES_OKAY: - ast_queue_log(queuename, "MANAGER", interface, "ADDMEMBER", "%s", ""); + ast_queue_log(queuename, "MANAGER", interface, "ADDMEMBER", "%s", membername); astman_send_ack(s, m, "Added interface to queue"); break; case RES_EXISTS: @@ -6761,6 +6787,7 @@ static int manager_remove_queue_member(struct mansession *s, const struct message *m) { const char *queuename, *interface; + char membername[80]; queuename = astman_get_header(m, "Queue"); interface = astman_get_header(m, "Interface"); @@ -6770,9 +6797,10 @@ return 0; } + interface2membername(queuename, interface, membername, sizeof(membername)); switch (remove_from_queue(queuename, interface)) { case RES_OKAY: - ast_queue_log(queuename, "MANAGER", interface, "REMOVEMEMBER", "%s", ""); + ast_queue_log(queuename, "MANAGER", interface, "REMOVEMEMBER", "%s", membername); astman_send_ack(s, m, "Removed interface from queue"); break; case RES_EXISTS: @@ -6994,7 +7022,7 @@ switch (add_to_queue(queuename, interface, membername, penalty, 0, queue_persistent_members, state_interface)) { case RES_OKAY: - ast_queue_log(queuename, "CLI", interface, "ADDMEMBER", "%s", ""); + ast_queue_log(queuename, "CLI", interface, "ADDMEMBER", "%s", membername); ast_cli(a->fd, "Added interface '%s' to queue '%s'\n", interface, queuename); return CLI_SUCCESS; case RES_EXISTS: @@ -7058,6 +7086,7 @@ static char *handle_queue_remove_member(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { const char *queuename, *interface; + char membername[80]; switch (cmd) { case CLI_INIT: @@ -7079,9 +7108,10 @@ queuename = a->argv[5]; interface = a->argv[3]; + interface2membername(queuename, interface, membername, sizeof(membername)); switch (remove_from_queue(queuename, interface)) { case RES_OKAY: - ast_queue_log(queuename, "CLI", interface, "REMOVEMEMBER", "%s", ""); + ast_queue_log(queuename, "CLI", interface, "REMOVEMEMBER", "%s", membername); ast_cli(a->fd, "Removed interface '%s' from queue '%s'\n", interface, queuename); return CLI_SUCCESS; case RES_EXISTS: