switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR,"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 = '%"MSWITCH_TIME_T_FMT"' WHERE system = 'single_box' AND uuid = '%q' AND state != '%q'",
/* Do not remove uuid of the agent if we are a standby agent */
sql=switch_mprintf("UPDATE agents SET %s last_bridge_end = %"SWITCH_TIME_T_FMT", talk_time = talk_time + (%"SWITCH_TIME_T_FMT"-last_bridge_start) WHERE name = '%q' AND system = '%q';"
sql=switch_mprintf("UPDATE agents SET %s last_bridge_end = %"MSWITCH_TIME_T_FMT", talk_time = talk_time + (%"MSWITCH_TIME_T_FMT"-last_bridge_start) WHERE name = '%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 system = 'single_box' AND uuid = '%q' AND (abandoned_epoch = '%"MSWITCH_TIME_T_FMT"' OR joined_epoch = '%q')",cbt.member_uuid,abandoned_epoch,cbt.member_joined_epoch);
cc_execute_sql(NULL,sql,NULL);
switch_safe_free(sql);
}
...
...
@@ -2150,7 +2157,7 @@ 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 FROM members"
sql=switch_mprintf("SELECT queue,uuid,session_uuid,cid_number,cid_name,joined_epoch,(%"MSWITCH_TIME_T_FMT"-joined_epoch)+base_score+skill_score AS score, state, abandoned_epoch FROM members"
" WHERE state = '%q' OR state = '%q' OR (serving_agent = 'ring-all' AND state = '%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 = '%"MSWITCH_TIME_T_FMT"' 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'",
sql=switch_mprintf("UPDATE members SET state = '%q', session_uuid = '', abandoned_epoch = '%"MSWITCH_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'",
sql=switch_mprintf("UPDATE members SET state = '%q', bridge_epoch = '%"MSWITCH_TIME_T_FMT"' WHERE system = 'single_box' AND uuid = '%q'",