--- apps/app_meetme.c.orig 2005-11-29 12:24:39.000000000 -0600 +++ apps/app_meetme.c 2006-01-11 16:31:11.775118425 -0600 @@ -599,9 +599,12 @@ strncat(cmdline, argv[3], sizeof(cmdline) - strlen(cmdline) - 1); } } else if(strcmp(argv[1], "list") == 0) { + int concise = ( argc == 4 && (!strcasecmp(argv[3],"concise") ) ); /* List all the users in a conference */ if (!confs) { - ast_cli(fd, "No active conferences.\n"); + if ( !concise ) { + ast_cli(fd, "No active conferences.\n"); + } return RESULT_SUCCESS; } cnf = confs; @@ -612,23 +615,40 @@ if (cnf->next) { cnf = cnf->next; } else { - ast_cli(fd, "No such conference: %s.\n",argv[2]); + if ( !concise ) { + ast_cli(fd, "No such conference: %s.\n",argv[2]); + } return RESULT_SUCCESS; } } /* Show all the users */ - for (user = cnf->firstuser; user; user = user->nextuser) - ast_cli(fd, "User #: %-2.2d %12.12s %-20.20s Channel: %s %s %s %s %s\n", - user->user_no, - user->chan->cid.cid_num ? user->chan->cid.cid_num : "", - user->chan->cid.cid_name ? user->chan->cid.cid_name : "", - user->chan->name, - user->userflags & CONFFLAG_ADMIN ? "(Admin)" : "", - user->userflags & CONFFLAG_MONITOR ? "(Listen only)" : "", - user->adminflags & ADMINFLAG_MUTED ? "(Admn Muted)" : "", - istalking(user->talking)); - ast_cli(fd,"%d users in that conference.\n",cnf->users); - + for (user = cnf->firstuser; user; user = user->nextuser) { + if ( !concise ) { + ast_cli(fd, "User #: %-2.2d %12.12s %-20.20s Channel: %s %s %s %s %s\n", + user->user_no, + user->chan->cid.cid_num ? user->chan->cid.cid_num : "", + user->chan->cid.cid_name ? user->chan->cid.cid_name : "", + user->chan->name, + user->userflags & CONFFLAG_ADMIN ? "(Admin)" : "", + user->userflags & CONFFLAG_MONITOR ? "(Listen only)" : "", + user->adminflags & ADMINFLAG_MUTED ? "(Admn Muted)" : "", + istalking(user->talking)); + } + else { + ast_cli(fd, "%d!%s!%s!%s!%s!%s!%s!%d\n", + user->user_no, + user->chan->cid.cid_num ? user->chan->cid.cid_num : "", + user->chan->cid.cid_name ? user->chan->cid.cid_name : "", + user->chan->name, + user->userflags & CONFFLAG_ADMIN ? "1" : "0", + user->userflags & CONFFLAG_MONITOR ? "1" : "0", + user->adminflags & ADMINFLAG_MUTED ? "1" : "0", + user->talking); + } + } + if ( !concise ) { + ast_cli(fd,"%d users in that conference.\n",cnf->users); + } return RESULT_SUCCESS; } else return RESULT_SHOWUSAGE; @@ -703,6 +723,8 @@ } ast_mutex_unlock(&conflock); return usr ? strdup(usrno) : NULL; + } else if ( strstr(line, "list") && ( state == 0 ) ) { + return strdup("concise"); } } @@ -710,7 +732,7 @@ } static char conf_usage[] = -"Usage: meetme (un)lock|(un)mute|kick|list \n" +"Usage: meetme (un)lock|(un)mute|kick|list [concise] \n" " Executes a command for the conference or on a conferee\n"; static struct ast_cli_entry cli_conf = {