fix FS-7049 - Count and list agents based on their state

This commit is contained in:
Italo Rossi 2014-12-02 22:57:43 -03:00
parent 35558993c9
commit 80649df65c
1 changed files with 16 additions and 2 deletions

View File

@ -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);