Merge pull request #127 in FS/freeswitch from ~ITALOROSSI/freeswitch:mod_callcenter-queue-list-count-by-state to master

* commit 'f63f8686bc8da391b3c46b24e10571215c8b377f':
  FS-7049 - Documentation for state optional paramenter in callcenter_config queue list and count
  fix FS-7049 - Count and list agents based on their state
This commit is contained in:
Marc Olivier Chouinard 2014-12-11 21:01:03 -06:00
commit e1cb0e8632
1 changed files with 18 additions and 4 deletions

View File

@ -2862,11 +2862,11 @@ static int list_result_callback(void *pArg, int argc, char **argv, char **column
"\tcallcenter_config queue unload [queue_name] | \n" \
"\tcallcenter_config queue reload [queue_name] | \n" \
"\tcallcenter_config queue list | \n" \
"\tcallcenter_config queue list agents [queue_name] [status] | \n" \
"\tcallcenter_config queue list agents [queue_name] [status] [state] | \n" \
"\tcallcenter_config queue list members [queue_name] | \n" \
"\tcallcenter_config queue list tiers [queue_name] | \n" \
"\tcallcenter_config queue count | \n" \
"\tcallcenter_config queue count agents [queue_name] [status] | \n" \
"\tcallcenter_config queue count agents [queue_name] [status] [state] | \n" \
"\tcallcenter_config queue count members [queue_name] | \n" \
"\tcallcenter_config queue count tiers [queue_name]"
@ -3220,6 +3220,7 @@ SWITCH_STANDARD_API(cc_config_api_function)
const char *sub_action = argv[0 + initial_argc];
const char *queue_name = argv[1 + initial_argc];
const char *status = NULL;
const char *state = NULL;
struct list_result cbt;
/* queue list agents */
@ -3227,7 +3228,13 @@ SWITCH_STANDARD_API(cc_config_api_function)
if (argc-initial_argc > 2) {
status = argv[2 + initial_argc];
}
if (status) {
if (argc-initial_argc > 3) {
state = argv[3 + initial_argc];
}
if (state) {
sql = switch_mprintf("SELECT agents.* FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q' AND agents.status = '%q' AND agents.state = '%q'", queue_name, status, state);
}
else if (status) {
sql = switch_mprintf("SELECT agents.* FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q' AND agents.status = '%q'", queue_name, status);
} else {
sql = switch_mprintf("SELECT agents.* FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q'", queue_name);
@ -3266,6 +3273,7 @@ SWITCH_STANDARD_API(cc_config_api_function)
const char *sub_action = argv[0 + initial_argc];
const char *queue_name = argv[1 + initial_argc];
const char *status = NULL;
const char *state = NULL;
char res[256] = "";
/* queue count agents */
@ -3273,7 +3281,13 @@ SWITCH_STANDARD_API(cc_config_api_function)
if (argc-initial_argc > 2) {
status = argv[2 + initial_argc];
}
if (status) {
if (argc-initial_argc > 3) {
state = argv[3 + initial_argc];
}
if (state) {
sql = switch_mprintf("SELECT count(*) FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q' AND agents.status = '%q' AND agents.state = '%q'", queue_name, status, state);
}
else if (status) {
sql = switch_mprintf("SELECT count(*) FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q' AND agents.status = '%q'", queue_name, status);
} else {
sql = switch_mprintf("SELECT count(*) FROM agents,tiers WHERE tiers.agent = agents.name AND tiers.queue = '%q'", queue_name);