diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c index 8d4c0caf06..7a34883345 100644 --- a/src/mod/applications/mod_callcenter/mod_callcenter.c +++ b/src/mod/applications/mod_callcenter/mod_callcenter.c @@ -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);