switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_DEBUG,"Member %s <%s> with uuid %s in queue %s is gone just before we assigned an agent\n",h->member_cid_name,h->member_cid_number,h->member_session_uuid,h->queue_name);
sql=switch_mprintf("UPDATE members SET state = '%q', session_uuid = '', abandoned_epoch = '%"SWITCH_TIME_T_FMT"' WHERE system = 'single_box' AND uuid = '%q' AND state != '%q'",
sql=switch_mprintf("UPDATE members SET state = '%q', session_uuid = '', abandoned_epoch = '%"SWITCH_TIME_T_FMT"' WHERE uuid = '%q' AND system = '%q' AND state != '%q'",
sql=switch_mprintf("SELECT count(*) FROM members WHERE serving_agent = '%q' AND uuid = '%q' AND system = 'single_box'",cbt->strategy,cbt->member_uuid);
sql=switch_mprintf("SELECT count(*) FROM members WHERE serving_agent = '%q' AND uuid = '%q' AND system = '%q'",cbt->strategy,cbt->member_uuid,globals.core_uuid);
/* Check if we won the race to get the member to our selected agent (Used for Multi system purposes) */
sql=switch_mprintf("SELECT count(*) FROM members WHERE serving_agent = '%q' AND serving_system = 'single_box' AND uuid = '%q' AND system = 'single_box'",
agent_name,cbt->member_uuid);
sql=switch_mprintf("SELECT count(*) FROM members WHERE serving_agent = '%q' AND serving_system = '%q' AND uuid = '%q' AND system = '%q'",
sql=switch_mprintf("DELETE FROM members WHERE system = 'single_box' AND uuid = '%q' AND (abandoned_epoch = '%"SWITCH_TIME_T_FMT"' OR joined_epoch = '%q')",cbt.member_uuid,abandoned_epoch,cbt.member_joined_epoch);
sql=switch_mprintf("DELETE FROM members WHERE uuid = '%q' AND system = '%q' AND (abandoned_epoch = '%"SWITCH_TIME_T_FMT"' OR joined_epoch = '%q')",cbt.member_uuid,cbt.member_system,abandoned_epoch,cbt.member_joined_epoch);
cc_execute_sql(NULL,sql,NULL);
switch_safe_free(sql);
}
...
...
@@ -2537,8 +2541,8 @@ static int members_callback(void *pArg, int argc, char **argv, char **columnName
@@ -2628,10 +2632,10 @@ void *SWITCH_THREAD_FUNC cc_agent_dispatch_thread_run(switch_thread_t *thread, v
while(globals.running==1){
char*sql=NULL;
sql=switch_mprintf("SELECT queue,uuid,session_uuid,cid_number,cid_name,joined_epoch,(%"SWITCH_TIME_T_FMT"-joined_epoch)+base_score+skill_score AS score, state, abandoned_epoch, serving_agent FROM members"
" WHERE state = '%q' OR state = '%q' OR (serving_agent = 'ring-all' AND state = '%q') OR (serving_agent = 'ring-progressively' AND state = '%q') ORDER BY score DESC",
sql=switch_mprintf("SELECT queue,uuid,session_uuid,cid_number,cid_name,joined_epoch,(%"SWITCH_TIME_T_FMT"-joined_epoch)+base_score+skill_score AS score, state, abandoned_epoch, serving_agent, system FROM members"
" WHERE (state = '%q' OR state = '%q' OR (serving_agent = 'ring-all' AND state = '%q') OR (serving_agent = 'ring-progressively' AND state = '%q')) AND system = '%q' ORDER BY score DESC",
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member_session),SWITCH_LOG_DEBUG,"Member %s <%s> restoring it previous position in queue %s\n",switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_name")),switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_number")),queue_name);
/* Update abandoned member */
sql=switch_mprintf("UPDATE members SET session_uuid = '%q', state = '%q', rejoined_epoch = '%"SWITCH_TIME_T_FMT"' WHERE uuid = '%q' AND state = '%q'",
sql=switch_mprintf("UPDATE members SET session_uuid = '%q', state = '%q', rejoined_epoch = '%"SWITCH_TIME_T_FMT"', system = '%q' WHERE uuid = '%q' AND state = '%q'",
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member_session),SWITCH_LOG_DEBUG,"Member %s <%s> abandoned waiting in queue %s\n",switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_name")),switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_number")),queue_name);
/* Update member state */
sql=switch_mprintf("UPDATE members SET state = '%q', session_uuid = '', abandoned_epoch = '%"SWITCH_TIME_T_FMT"' WHERE system = 'single_box' AND uuid = '%q'",
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member_session),SWITCH_LOG_DEBUG,"Member %s <%s> is answered by an agent in queue %s\n",switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_name")),switch_str_nil(switch_channel_get_variable(member_channel,"caller_id_number")),queue_name);
/* Update member state */
sql=switch_mprintf("UPDATE members SET state = '%q', bridge_epoch = '%"SWITCH_TIME_T_FMT"' WHERE system = 'single_box' AND uuid = '%q'",